系统的Git分支模型,以及Git分支使用技巧

新系统使用的Git分支模型

主要介绍将在新系统中使用的Git分支模型。

关键分支

关键分支为2个可一直延续的分支,类型包括:

  • 主分支 master branch
  • 开发分支 develop branch
    1.master主分支用于生成发布,且主分支一般不允许提交,只能由管理员从develop分支合入。
    2.develop开发分支,该分支HEAD源码始终体现下个发布版的最新软件变更,开发者开发完功能自测后将代码合并到此分支并推送代码,持续集成系统使用该分支将系统部署在测试环境供测试同事测试。当develop分支的源码到达了一个稳定状态待发布,所有的代码变更需要以某种方式合并到master分支,然后标记一个版本号。
系统的Git分支模型,以及Git分支使用技巧_第1张图片
关键分支.png

辅助性分支

开发模型使用了各种辅助性分支,这些分支与关键分支(master和develop)一起,用来支持团队成员们并行开发,使得易于追踪功能,协助生产发布环境准备,以及快速修复实时在线问题。与关键分支不同,这些分支总是有一个有限的生命期,因为他们最终会被移除。
分支类型包括:

  • 功能分支 feature branch
  • 版本发布分支 release branch
  • 热修复分支 hotfix branch
    每一个辅助分支都有一个特定目的,并且受限于严格到规则,比如:可以用哪些分支作为源分支,哪些分支能作为合并目标。下面分别介绍各个分支在实际开发中的使用。
功能分支

功能分支常用于系统开发初期,或者是系统需要在未来发布版开发较大的新功能。develop分支的分支版本,最终必须合并到develop分支中。
根据其用于系统开发初期或是在未来发布版开发较大的新功能需要注意。如果是用于系统开发初期,我们可在本地创建功能分支,然后开发完合并到develop分支,如果是用于在未来发布版开发较大的新功能(网站加入HTTPS[嘿嘿])可由管理员在中心库创建功能分支并维护。

系统的Git分支模型,以及Git分支使用技巧_第2张图片
功能分支.png

1.从最新的develop分支创建feature分支,习惯命名方式为:feature-功能名称。
$ git checkout -b feature-user-manage develop
2.开发完成后可合并到develop分支
$ git checkout develop $ git merge --no-ff feature-user-manage $ git push orgin develop
--no-ff标志导致合并操作创建一个新commit对象,即使该合并操作可以fast-forward。这避免了丢失这个功能分支存在的历史信息,将该功能的所有提交组合在一起。 比较:

系统的Git分支模型,以及Git分支使用技巧_第3张图片
比较.png

后一种情况,不可能从Git历史中看到哪些提交一起实现了一个功能——你必须手工阅读全部的日志信息。如果对整个功能进行回退 (比如一组提交),后一种方式会是一种真正头痛的问题,而使用--no-ffflag的情况则很容易.
3.功能确认后可删除feature分支
$ git branch -d feature-user-manage

版本发布分支

release版本发布分支从develop分支而来,结合实际开发常用于较为稳定的系统的常规版本发布,且需要周期性的维护更新版本。可能一个周发布一个版本,或者是两周,我们能清楚的知道这个版本期望在那个时间需要发布到生产。这时可以使用版本发布分支进行开发,每一个版本发布分支都拥有它对应的发布版本号。
1.从最新的develop分支创建release分支,习惯命名方式为:release-*(按照我们原来的习惯可以用发布日期)。
$ git checkout -b release-2016.11.14 develop
2.开发完成后可合并到develop分支
$ git checkout develop $ git merge --no-ff release-release-2016.11.14 $ git push orgin develop
3.版本发布后并生产确认后可删除release分支
$ git branch -d release-2016.11.14

热修复分支

hotfix热修复分支由mater分支而来,常用于由于生产环境异常状态,或者紧急维护。当生成环境验证缺陷必须马上修复时,热修复分支可以基于master分支上对应与线上版本的tag创建。其基于master分支,必须合并回develop和master分支。hotfix热修复分支由管理员在中心库创建。

系统的Git分支模型,以及Git分支使用技巧_第4张图片
Paste_Image.png

1.从最新的master分支线上tag创建hotfix分支,习惯命名方式为:hotfix-修复版本-修复功能
$ git checkout -b hotfix-1.2.1-withdraw master
2.开发完成后可合并到master分支和develop分支
$ git checkout master $ git merge --no-ff hotfix-1.2.1-withdraw $ git checkout develop $ git merge --no-ff hotfix-1.2.1-withdraw
3.确认后删除分支
$ git branch -d hotfix-1.2.1-withdraw

总结

上述就是我们新系统开发中实际将要用到的Git分支模型,希望大家能够理解并很好的运用实践。如有问题可以直接找我,谢谢!

你可能感兴趣的:(系统的Git分支模型,以及Git分支使用技巧)