第一步,获取代码
pull 最新的代码,在工程下运行测试,确保无问题后再开始开发。如果有问题,立即联系其他人协调解决。
# 很多自己写的gem需要更新到最新
bundle update
# 数据库迁移
rake db:migrate
rake db:migrate RAILS_ENV=test
# 自动测试
bundle exec rspec spec
初步估计开发时间。如果开发时间会较长(别人在此期间可能会进行提交),为了不影响到其他人,建议通过创建分支来提交。
建议分支命名为:自己的 名字+下划线+功能名
git checkout -b ben7th_css_layout
第二步,开发
进行开发,过程中可以:
git add -A
git commit -m '....'
git push origin ben7th_css_layout
可以随意 commit 以及 push 到 github 上的非主分支
这样不会影响到别人
第三步,合并分支,处理冲突
开发功能。commit, push。自己调试。通过测试驱动开发,保证测试代码覆盖率(持续集成服务会自动检查测试代码覆盖。)当功能开发完毕后:
检查确认自动测试通过
bundle exec rspec spec
合并分支,处理冲突
git checkout master
git merge ben7th_css_layout
分支合并后,先pull最新代码
git pull origin master
如果有冲突,处理冲突。注意,需要联系其他人一起处理冲突,不要独自处理。同时绝对不允许把带有冲突信息的文件提交到版本库。
冲突处理完毕后,再次运行自动测试
bundle exec rspec spec
当没有问题后,可以push代码到主分支了
第四步,提交代码,删除本地和远程临时分支
git push origin master
git branch -d ben7th_css_layout
git push origin :ben7th_css_layout # 冒号不能漏
自此,一个功能的开发就结束了。
原则上,不要影响他人,要保证测试覆盖率和测试通过。