文章目录
  1. 1. 介绍
  2. 2. 安装
  3. 3. 使用
    1. 3.1. 主要分支
    2. 3.2. 辅助分支
    3. 3.3. 新建feature分支
    4. 3.4. 管理release分支
    5. 3.5. hotfix分支

介绍

使用git开发进行分支管理功能确实比TFS、SVN方便许多,推荐大家使用分支来做开发。git branch 虽然功能强大但是在团队开发中使用不当反而会降低工作效率,在这种情况下有牛人开发整理出一套比较好的方案 A successful Git branching model 来规范代码版本管理流程。

git flow 是规范化使用git branch 的一套方案来管理分支,规范代码流程。

安装

下载地址: http://files.cnblogs.com/fanyong/gitflow_to_git_bin.7z
解压缩后放在git安装目录中的bin目录下。

使用

第一次使用先初始化,它会问你一系列问题,蛋定,一般采用默认参数一路回车即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ git flow init
Which branch should be used for bringing forth production releases?
- master
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []

每个项目都有2个分支,master和develop分支,master分支是主分支,保证程序有一个稳定的版本,和线上代码是同步的 ; develop分支则是开发使用的分支,几乎所有的功能开发都要在该分支上进行。
简单来说, git branch 把 branch 分成了2个主要分支 和 3个临时辅助分支:

主要分支

  • master分支:永远处在即将发布(production-ready)状态
  • develop分支:最新的开发状态

辅助分支

  • feature分支:开发新功能的分支,基于develop,开发完成后merge回develop
  • release分支:准备要发布版本的分支(测试环境用的),用来修复SIT bug;基于develop分支,完成后merge回develop和master分支
  • hotfix分支:修复线上(master)紧急bug,等不及release分支就必须马上上线;基于master分支,完成后merge回master和develop分支。

新建feature分支

完成 git flow init 后当前所在分支就变成 develop. 任何开发都必须从 develop 开始。
开始开发一个新的功能点:

1
2
3
$ git flow feature start some_awesome_feature
# ... 开发 完成后 ...
$ git flow feature finish some_awesome_feature

最后一条命令会把 feature/some_awesome_feature 合并到develop分支,然后删除feature分支。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ git flow feature start td
Switched to a new branch 'feature/td'
Summary of actions:
- A new branch 'feature/td' was created, based on 'develop'
- You are now on branch 'feature/td'
Now, start committing on your feature. When done, use:
git flow feature finish td
$ git add .
$ git commit -m 'update a new feature'
# finish
$ git flow feature finish td
Switched to branch 'develop'
Updating 85a4e89..b2740da
Fast-forward
CampusAmbassador.Task.Web/Scripts/crop.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Deleted branch feature/td (was b2740da).
Summary of actions:
- The feature branch 'feature/td' was merged into 'develop'
- Feature branch 'feature/td' has been removed
- You are now on branch 'develop'

管理release分支

新建并且把一个release分支推送到远程服务器:

1
$ git flow release publish release1.0

组内其他成员在 release1.0上继续开发或者修改测试环境的bug

1
$ git flow releas track release1.0

当你的功能点都完成时(需要发布新版本了),就基于develop创建一个发布(release)分支

1
2
$ git flow release start v1.0
$ git flow releaes finish v1.0

当你在完成(finish)一个发布分支时,它会把你所作的修改合并到master分支,同时合并回develop分支,所以,你不需要担心你的master分支比develop分支更加超前。

hotfix分支

最后一件让git-flow显得威武的事情是它处理热修复(即时的BugFix)的能力,你可以像其他分支一样地创建和完成一个热修复分支,区别是它基于master分支,因此你可以在产品出现问题时快速修复,然后通过”finish”命令把修改合并回master和develop分支。
如果线上出现bug需要紧急修复,就可以使用hotfix分支

1
2
3
$ git flow hotfix start fixbug
# ... bug fixed ...
$ git flow hotfix finish fixbug

最后一条命令会把 hotfix 合并到master和develop分支上,然后删除hotfix分支。

文章目录
  1. 1. 介绍
  2. 2. 安装
  3. 3. 使用
    1. 3.1. 主要分支
    2. 3.2. 辅助分支
    3. 3.3. 新建feature分支
    4. 3.4. 管理release分支
    5. 3.5. hotfix分支