因为老东家用的还是SVN,所以对git的一些操作都还不是很熟悉。最近在处理工作的时候,需要同时对master与基于master产生的分支分别进行操作,担心master的版本超前分支基版本而出现奇怪的现象。在百度找到了说的比较清晰的流程,原址在这里。
防止丢失,在这里重复记录。
git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:
去自己的工作分支
$ git checkout work
工作
…
提交工作分支的修改
$ git commit -a
回到主分支
$ git checkout master
获取远程最新的修改,此时不会产生冲突
$ git pull
回到工作分支
$ git checkout work
用rebase合并主干的修改,如果有冲突在此时解决
$ git rebase master
回到主分支
$ git checkout master
合并工作分支的修改,此时不会产生冲突。
$ git merge work
提交到远程主干
$ git push
这样做的好处是,远程主干上的历史永远是线性的。每个人在本地分支解决冲突,不会在主干上产生冲突。