git hotfix (用于紧急修复线上bug)
(1) 切到master分支
git checkout master
(2) 更新代码,保证本地的master代码是最新的
git pull --rebase
(3) 新建hotfix分支,也就是在这个分支上写代码,此分支就是一个本地分支,xxx是分支的名称,可以用来描述你修复的bug,例如:fix_account_bugs
git flow hotfix start xxx
(4) 代码写好,本地测试没问题,所有单元测试都通过,这时可以提交修改的文件,强烈建议使用IDE的可视化工具提交代码,因为你可以看到diff,更直观!下面命令仅供参考。
git add xxx.java
git commit -m "fix bug"
(5) 步骤4可能会不断重复,直到最终修改和测试完成后,结束hotfix以供发布,此步骤很关键,执行下面命令后,会有几次交互界面,跟vi的操作一样,需要insert,然后输入一些备注,来描述你本次修改,然后:wq来保存即可。
git flow hotfix finish xxx
(6) 如果没有冲突,说明你很幸运,操作完第5步,此时你应该在develop分支上,可以通过git branch查看当前分支,接下来建议你切到master分支,push代码到服务器上,因为hotfix是为了修复线上bug,线上的代码是来自master的,先把问题修复,保证上线,然后回来再看develop上的问题。
git checkout master
(7) 发布最终的master分支,这时候CI服务器会自动编译打包你的代码,等待打包完毕,重启UAT的服务,就可以通知测试人员去测试了,如果测试有问题,那请从第一步重复吧。。。。
git push origin master
(8) 切换到develop,去push代码
git push origin develop
另外,如果想省事儿的话,可以直接commit,然后使用git cherry-pick [commit id] 捡到其他分支,一起push。