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

这样作的好处是,远程主干上的历史永远是线性的。每一个人在本地分支解决冲突,不会在主干上产生冲突。