Git分支管理

在运用git管理代码的时候,有时需要修改代码。git提供了分支的功能,这样,可以很方便的添加功能,修改bug等,合理的运用分支,可以使代码的演进保持简介清晰,这样能够高效的管理代码,开发功能等。下面介绍一种管理分支的策略。

主分支

主分支代码的主版本,能够随时用来上线,另外,应该避免直接向主分支提交代码,而是从其他分支合并。名称为master。

开发分支

用来进行日常的开发工作。在开发分支完成以后,比如完成一个新功能,就可以合并到主分支上,然后发布代码。直接以dev命名。具体操作如下:

#从主分支上分出dev分支
$ git checkout -b dev master

#将dev分支合并到mastet分支
$ git checkout master  #切换到master分支
$ git merge --no-ff dev  #合并dev分支

上面参数中 –no-ff 的意思如下:

在执行快进式合并(fast-farward merge)时,使用–no-ff参数后,执行正常的合并,在master上生成一个新节点,而没有参数时,会直接将master指向dev分支,推荐第二种做法。

临时性分支

临时性分支是指暂时存在的分支,当该分支的功能完成以后,合并到主分支上,就可以删除这些分支。具体有功能分支、修复分支、预发布分支。

功能分支

功能分支就是专门负责一个功能的开发。首先从dev分支分出来,然后完成一个功能后,再并入dev分支,最后,就可以删除该分支。命名采用 feature-* 的形式。

#创建一个新分支
$ git checkout -b feature-x dev

#在开发完成后,合并到dev分支
$ git checkout dev
$ git merge --no-ff feature-x

#删除feature分支
$ git branch -d feature-x

修复分支

修复分支是用来对bug进行修复。修复分支从master分支上分出来,修复完成以后,在合并到master和dev分支。命名采用 hotfix-* 形式。

#创建一个修复bug的分支
$ git checkout -b hotfix-x master 

#修复结束后,合并到master分支
$ git checkout master  #切换到master分支
$ git merge --no-ff hotfix-x  #合并hotfix分支
$ git tag -a 0.1  #为主分支添加标签

#再合并到dev分支
$ git checkout dev
$ git merge --no-ff hotfix-x

# 删除分支
$ git branch -d hotfix-x

预发布分支

预发布分支是指正式版发布之前,预先发布一个版本进行测试,在完成后,就可以删除该分支。预发布分支是从dev分出来的,预发布结束以后,合并进dev和master分支。命名可以采用release-x的形式。

# 创建一个预发布分支
$ git checkout -b release-1.0 dev

#确认没有问题以后,合并到master分支
$ git checkout master
$ git merge --no-ff release-1.0
$ git tag -a 1.0  #合并以后,做一个标签

#再合并到dev分支
$ git checkout dev
$ git merge --no-ff relase-1.0

#最后删除该分支
$ git branch -d release-1.0

关于以上分支的一种示意图

 

Git分支管理策略 
Git 分支管理最佳实践