git支持很多種工作流程,我們采用的一般是這樣,遠(yuǎn)程創(chuàng)建一個(gè)主分支,本地每人創(chuàng)建功能分支,日常工作流程如下:
去自己的工作分支
$ git checkout work
工作
....
提交工作分支的修改
$ git commit -a
回到主分支
$ git checkout master
獲取遠(yuǎn)程最新的修改,此時(shí)不會(huì)產(chǎn)生沖突
$ git pull
回到工作分支
$ git checkout work
用rebase合并主干的修改,如果有沖突在此時(shí)解決
$ git rebase master
回到主分支
$ git checkout master
合并工作分支的修改,此時(shí)不會(huì)產(chǎn)生沖突。
$ git merge work
提交到遠(yuǎn)程主干
$ git push
如果出現(xiàn)沖突''you need to resolve your current index first '':故需要回退到合并前。
解決方案如下:
git reset --merge
這樣做的好處是,遠(yuǎn)程主干上的歷史永遠(yuǎn)是線性的。每個(gè)人在本地分支解決沖突,不會(huì)在主干上產(chǎn)生沖突。