git分支管理策略

    git是一款优秀的版本管理工具,但是我们面对版本管理的时候,依然有非常大得挑战。大部分开发人员现在使用Git就只是用三个甚至两个分支,一个是Master, 一个是Develop, 还有一个是基于Develop打得各种分支。这个在小项目规模的时候还勉强可以支撑,因为很多人做项目就只有一个Release, 但是人员一多,而且项目周期一长就会出现各种问题。
    git 和 svn 的一个显著区别就是提供更丰富的分支特性,我们今天就要说一下如何使用 git 管理这些分支。

    Vincent Driessen提出了一个分支管理的策略,我觉得非常值得借鉴。它可以使得版本库的演进保持简洁,主干清晰,各个分支各司其职、井井有条。理论上,这些策略对所有的版本管理系统都适用,Git只是用来举例而已。

一、主分支Master

首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。

Git主分支的名字,默认叫做Master。它是自动建立的。 这个分支只能从其他分支合并,不能在这个分支直接修改。

二、开发分支Develop

主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。

使用master和develop这两个分支就具有了最简单的开发模式:develop 分支用来开发功能,开发完成并且测试没有问题则将 develop分支的代码合并到 master 分支并发布。

Git创建Develop分支的命令:
git checkout -b develop master

将Develop分支发布到Master分支的命令:
# 切换到Master分支
git checkout master

# 对Develop分支进行合并
git merge --no-ff develop

这样两个分支开发会出现一些问题:

  • develop 分支只有发布完了才能进行下一个版本开发,开发会比较缓慢。
  • 线上代码出现 bug 如何进行 bug 修复

三、功能分支Feature

feature 分支用来开发具体的功能,一般 fork 自 develop 分支,最终可能会合并到 develop 分支。比如我们要在下一个版本增加功能1、功能2、功能3。那么我们就可以起三个feature 分支:feature1,feature2,feature3。(feature 分支命名最好能够自解释,这并不是一种好的命名。)随着我们开发,功能1和功能2都被完成了,而功能3因为某些原因完成不了,那么最终 feature1 和 feature2 分支将被合并到 develop 分支,而 feature3 分支将被干掉。

功能分支的名字,可以采用feature-*的形式命名。

创建一个功能分支:
git checkout -b feature-x develop

开发完成后,将功能分支合并到develop分支:
git checkout develop
git merge --no-ff feature-x

删除feature分支:
git branch -d feature-x

四、 预发布分支Release

  • Release分支基于Develop分支创建,打完Release分之后,我们可以在这个Release分支上测试,修改Bug等。同时,其它开发人员可以基于开发新的Feature (记住:一旦打了Release分支之后不要从Develop分支上合并新的改动到Release分支)
  • release 分支在我看来是 pre-master。release 分支从 develop 分支 fork 出来,最终会合并到 develop 分支和 master 分支。合并到 master 分支上就是可以发布的代码了。有人可能会问那为什么合并回 develop 分支呢?很简单,有了 release 分支,那么相关的代码修复就只会在 release 分支上改动了,最后必然要合并到 develop 分支。
  • release分支也是我们提交测试环境测试的分支。

它的命名,可以采用release-*的形式。

创建一个预发布分支:
git checkout -b release-1.2 develop

确认没有问题后,合并到master分支:
git checkout master
git merge --no-ff release-1.2

# 对合并生成的新节点,做一个标签
git tag -a 1.2

再合并到develop分支:
git checkout developgit merge --no-ff release-1.2

最后,删除预发布分支:
git branch -d release-1.2

五、紧急维护分支Fixbug

最后一种是修补bug分支。软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。

修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。

它的命名,可以采用fixbug-*的形式。

创建一个修补bug分支:
git checkout -b fixbug-0.1 master

修补结束后,合并到master分支:
git checkout mastergit merge --no-ff fixbug-0.1
git tag -a 0.1.1

再合并到develop分支:
git checkout develop
git merge --no-ff fixbug-0.1

最后,删除"修补bug分支":
git branch -d fixbug-0.1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haoxin963

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值