由于rebase执行速度慢,分支同步主干代码时,分支的每次提交都可能和主干产生冲突,需要解决的次数太多,影响提交效率。 同时,为了保证主干提交线干净(可以安全回溯),所以采用下面所说的merge法。
merge法
核心: (master) git merge feature --squash
意思是把feature
分支不同于master
分支的所有文件罗列出来(无论有几个提交),然后就可以方便的git commit
提交了
#1 创建功能分支
(master) git checkout -b feature
#2 功能迭代
(feature) git commit ...
#3 合并最新主干代码
(feature) git checkout master
(master) git pull
(master) git checkout feature
(feature) git merge master
解冲突
(feature) git commit #
4 review,修改代码
(feature) git commit
5 提交测试通过后,合并到主分支,先执行一遍第3步 # 把提交合并成一个
(feature) git checkout master
(master) git merge feature --squash
(master) git commit # 推送到远端,正常结束
(master) git push origin #
6 如果上一步被拒绝,是因为master有更新的代码入库了,为了防止master上出现分线,需要重新执行第5步