Git工作流指南二:集中式工作流
本文由 伯乐在线 - 李鼎 翻译。未经许可,禁止转载!
英文出处:atlassian。欢迎加入翻译组。
转到分布式版本控制系统看起来像个令人生畏的任务,但不改变已用的工作流你也可以用上Git带来的收益。团队可以用
和Subversion完全不变的方式来开发项目。
但使用Git加强开发的工作流,Git比SVN有几个优势。首先,每个开发可以有属于自己的整个工程的本地拷贝。隔离的环境让各
个开发者的工作和项目的其他部分(修改)独立开来 —— 即自由地提交到自己的本地仓库,先完全忽略上游的开发,直到方便
的时候再把修改反馈上去。
其次,Git提供了强壮的分支和合并模型。不像SVN,Git的分支设计成可以做为一种用来在仓库之间集成代码和分享修改的『失
败安全』的机制。
像Subversion一样,集中式工作流以中央仓库作为项目所有修改的单点实体。相比SVN缺省的开发分支trunk,Git叫
做master,所有修改提交到这个分支上。该工作流只用到master这一个分支。
开发者开始先克隆中央仓库。在自己的项目拷贝中,像SVN一样的编辑文件和提交修改;但修改是存在本地的,和中央仓库是完
全隔离的。开发者可以把和上游的同步延后到一个方便时间点。
要发布修改到正式项目中,开发者要把本地master分支的修改『推(push)』到中央仓库中。这相当于svn commit操作,
但push操作会把所有还不在中央仓库的本地提交都推上去。
中央仓库代表了正式项目,所以提交历史应该被尊重且是稳定不变的。如果开发者本地的提交历史和中央仓库有分歧,Git会拒
绝push提交否则会覆盖已经在中央库的正式提交。