git-flow分支策略

git-flow分支管理策略是非常流行的,实际项目的版本管理中可以借鉴其思想。

https://nvie.com/posts/a-successful-git-branching-model/

git-flow将分支分为以下几种类型:

类型来源去向说明
master主分支
releasedevelopdevelop和master预发布分支
developrelease和master开发分支
featuredevelopdevelop功能分支
hotfixmasterdevelop和master紧急修复分支

master

  • 主分支,永远是可用的、稳定的、可直接发布的版本;
  • 不能直接在该分支上开发;
  • 合并release稳定版本后打Tag确定版本。

release

  • 预发布分支,在develop分支上创建,用于发布测试版本;
  • 修改好bug并确定稳定之后合并到develop和master分支,然后发布master分支;
  • 上线后可删除。

创建并切换到release分支:

1
$ git checkout -b release-1.2 develop

修复bug完毕提交:

1
$ git commit -a -m "release 1.2"

release合并到master分支:

1
2
$ git checkout master
$ git merge --no-ff release-1.2

master分支打tag:

1
$ git tag -a 1.2

删除release分支:

1
$ git branch -d release-1.2

develop

  • 开发主分支,代码永远是最新;
  • 所有新功能以这个分支来创建自己的feature分支,该分支只做合并操作,不能直接在该分支上开发。

feature

  • 功能分支,在develop上创建分支,以自己开发功能模块命名;
  • 功能测试正常后合并到develop分支,然后可删除。

创建并切换到feature分支:

1
$ git checkout -b myfeature develop

feature合并到develop分支:

1
2
$ git checkout develop
$ git merge --no-ff myfeature

开发完毕删除分支并推送:

1
2
$ git branch -d myfeature
$ git push origin develop

hotfix

  • 紧急修复分支,项目上线之后可以会遇到Bug需要紧急修复,从master分支上创建;
  • 修复完成后合并到develop和master分支,然后可进行删除。

创建并切换到hotfix分支:

1
$ git checkout -b hotfix-1.2.1 master

修复完毕提交:

1
$ git commit -a -m "hotfiex 1.2.1"

hotfix合并到master分支:

1
2
$ git checkout master
$ git merge --no-ff hotfix-1.2.1

master分支打tag:

1
$ git tag -a 1.2.1

删除hotfix分支:

1
$ git branch -d hotfix-1.2.1

除了master和develop分支是一直持续以外,其余分支工作完毕后可进行删除。

分支命名规范

分支命名规范建议如下:

  • origin/类型/版本/描述

例如:

  • origin/master
  • origin/release/1.0.0
  • origin/release/1.0.1-bugfix
  • origin/develop
  • origin/feature/1.0.1/AAA
  • origin/feature/1.0.1/BBB
  • origin/hotfix/1.0.0
0%