赞
踩
Git是分布式版本控制系统,与之对应另一种常用的SVN是集中式版本控制系统。它们的差异很大,主要是源于它们的设计思想,这里就不展开细说,大家可以自行查找资料。总体来说,Git更灵活、对工作环境依赖更小、更适合多人团队的协同工作,但是学习成本更高,如果仅仅是用Svn的方式去使用它,那就几乎和Svn一样没有什么学习成本,但是之所以选择了Git,就是要充分利用它的优点,从而使我们的项目代码管理更加有效、合理,提高协同工作效率。互联网上Git托管平台有:GitHub,国内的有Gitee。
在Git使用过程中,我们从始至终都在和分支打交道,分支可以说是最重要的,也是使用Git所必须要掌握的一个点。
分支的概念很好理解,顾名思义,就像一颗树,从主干出来可以衍生无数个树枝,但是在Git中没有实际上的主干,每个分支都是可以作为主干,因为每个分支就是一个副本,每个分支都可以不依赖于其他分支。通常在项目建立后,我们会人为的确认一条分支作为主干,这条主干将放在我们的中央存储仓库中,提供给各开发人员作为基线。
在Git中,当新创建了仓库后,就会默认创建一个分支,名称为master,我们可以在该分支上创建多次提交,并以任意提交为基础,新创建任意个分支。(注意:如果master还未创建提交,此时新创建了分支,那么此操作相当于对master分支进行重命名)。
如上图,共存在5个分支,不同的开发人员可以并行的在不同分支上进行编码工作并提交,它们之间互不影响。
一个项目在持续开发和迭代中主要有几个阶段:功能开发、问题修复、版本发布、紧急问题修复、版本迭代。这个过程中,每个阶段并不是完全是时间顺序的,可能是并行的,也可能涉及到多人的协同工作。但最终目的是输出稳定的发布版本,Git分支对这个过程的工作提供了强大而灵活的支持。
虽然可以在任意分支上创建任意个子分支,但是在实际项目开发过程中,团队内部需要制定一个规则用于指导分支的创建,比如:
feature/
为前缀,加上功能名,如:feature/sms_login
,问题修复分支以fix/
为前缀,加上问题描述,如:fix/user_table_query_fail
。 方才所说,分支本质上是独立互不依赖的,这为团队协同工作提供了极大便利性,但是一个版本或者大功能的完整性则需要集合各分支上的代码,因此需要指定一个分支作为主分支,当其他分支上的代码已编码结束并完成测试时,需要把该分支的提交整合到主分支,这个操作叫做合并,协同工作因此变为可能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。