Git提供异常灵活的分支操作,但是在实践中也是需要制定良好的分支策略才能保证有效的利用Git来管理代码。
最近发现了一篇很好的英文文章,https://www.atlassian.com/git/tutorials/comparing-workflows,根据其内容作了整理。

例如上图所示,中央库的master分支origin/master上有了新的提交,本地的master分支上也有了新的提交。
这个时候,如果直接git push,git会报告需要合并修改。通过以下的几步合并修改并解决冲突。
1)git pull --rebase
加上--rebase选项是为了把本地的提交移动到中央库分支的master之上,如下图所示。rebase相当于先获取中央库的提交,然后把本地的提交一个一个应用上去。
最近发现了一篇很好的英文文章,https://www.atlassian.com/git/tutorials/comparing-workflows,根据其内容作了整理。
关于分支策略,有如下几种好的实践方式。
Centralized Workflow / 集中式工作流
集中式工作流非常类似于SVN,但是你也可以享受到Git带来的好处,比如可以完全在本地工作直到你要提交,在比如利用Git强壮的分支和合并模型。How It Works / 如何工作
中央仓库上只有一个master分支,类似于SVN中的trunk。所有的改变都提交到master分支。Managing Conflicts / 合并提交和管理冲突
如果提交的时候中央库上已经有了新的提交,产生了冲突,需要pull中央库的最新提交,然后rebase自己的修改到最新提交之上。例如上图所示,中央库的master分支origin/master上有了新的提交,本地的master分支上也有了新的提交。
这个时候,如果直接git push,git会报告需要合并修改。通过以下的几步合并修改并解决冲突。
1)git pull --rebase
加上--rebase选项是为了把本地的提交移动到中央库分支的master之上,如下图所示。rebase相当于先获取中央库的提交,然后把本地的提交一个一个应用上去。