Git的分支(2)

  之前提到过集中式版本工具中分支的作用是开发一些测试性功能或者修复一些稳定版本的Bug,使用分支可以与开发主线隔离,当完成后再合并到主线中,这种开发流程被称为“集中式工作流”,它的工作流程可看成:

  

Git的分支

  1. 以主分支Trunk为核心进行开发,换句话就是开发人员把开发代码都提交到Trunk上,提交之前获取所有代码,并且保证代码能编译成功。
  2. 如果有测试性功能,为了与主干代码分离,通过开启分支的形式完成功能开发。(注:这里写测试性功能的原因是,集中式的版本控制工具开启分支代价相对较大,所以在创建分支的时候是谨慎的)。
  3. 当开发达到一个里程碑时,通过创建Tag分支来保存里程碑状态,同时Tag出现问题时,可以通过创建Bug修复分支或者直接在Tag分支上修复问题,最终将修复代码合并到Trunk上。
  对于分布式的Git来说,由于它创建和切换分支的代价很小,所以可以频繁的创建和切换分支,而分支的功能就是与主干代码隔离,以至于在开发过程中不会因为不完善的功能代码导致主干代码被污染,从而导致无法编译通过,它主要有以下几种开发工作流:

集中式工作流

  集中式工作流就是上面提到集中式版本控制工具中常用的开发流程,以主分支为核心,所有开发人员通过更新主分支代码完成代码的开发工作,同时也会创建一些分支和标签(Git的默认分支是Master):

  

Git的分支

功能开发工作流

  功能开发工作流程是以功能为单位进行分支创建,其过程如下:

  

Git的分支

  通过创建对应的功能或问题修复分支,完成功能的开发和Bug的修复。这样的好处就是功能与功能之间的代码是隔离的互不影响,利用Git的快速切换分支特性,可以在同一工作目录下同时开发多个功能,且各个功能之间的代码不会互相影响。另外所有新代码均通过合并的方式合并到Master分支,这样代码更容易控制管理。

Gitflow工作流

  Gitflow可以看作是功能开发工作流的完善版本,它除了Master分支、特性分支、Bug修复分支外,还引入了release、develop两个分支来管理发布和开发,而Master只保存稳定版本的代码。

  

Git的分支

  (图片来自https://www.cnblogs.com/cnblogsfans/p/5075073.html)
  总的来说Git就是使用它快速创建和切换分支的特性,在开发过程中通过分支来完成功能的开发、Bug修复以及代码发布。
  更多信息可参考:
          https://blog.csdn.net/wwj_748/article/details/55226044

Git的分布式工作流

  前面介绍了Git的特性之一“分支”的工作流,那么Git的特性之二“分布式”又会对开发模式带来什么样的变化?

再谈集中式工作流

  为什么又是集中式工作流?文章前面介绍的集中式工作流主要偏重于“分支”,所有工作的内容提交到一个Trunk或者Master的分支上。
  而这里的集中式工作流是针对与代码仓库来说的,所有开发人员使用同一个代码仓库进行协同工作,Git中使用集中式工作流时还可以采用特性分支或者Git Flow工作流来体现Git分支带来的便利(注:如果一个项目的贡献者只有一个人的话,实际上集中式工作流联合特性或Git flow来进行开发是最适合的):

  

Git的分支

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7a81a9153e1b0f59d8705697cf34077e.html