工具

Git Flow

2018-05-14  本文已影响0人  lihongyan

介绍

git 最强大的就是其分支功能,但是如何使用分支才能更有效的提高开发效率,减少因为代码合并代码的问题。需要一个分支模型来规范,在git-flow出现之前,已经有分支模型理论。你只需要了解,那些工作流程是由哪些单独的任务所组成的,并且附带上正确的参数,以及在一个正确的顺序下简单执行那些对应的git命令就可以了。在git-flow出现之后,你就不需要把这些命令和顺序都记在脑子里。git-flow将一部分操作流程简化为命令,并没有增加新的功能,只是简化了操作,


安装

目前最流行的git-flow就是avh版本的git-flow

mac

brew install git-flow-avh


使用

初始化项目

# 使用git flow init 代替git init

$ git flow init

使用git flow初始化工程目录之后,默认创建两个分支

          image

master分支和develop分支也被称为长期分支,它们会存活在项目的整个生命周期中。而其他分支,仅仅是临时存在的,当它们完成了自己的任务之后就会被删除掉。

功能开发(feature分支)

创建feature

# git-flow 创建 feature 分支

$ git flow feature start <branch-name>

当你需要帮助的时候,可以随时请求帮助。例如:

$ git flow feature help

完成feature

git flow feature finish

该命令会把当前分支的代码整合到develop分支中去,之后,git-flow会进行清理操作,删除当下完成的功能分支,将分支切换到develop

版本管理(release分支)

创建release

创建release分支

$ git flow release start 1.1.5

Switched to a new branch 'release/1.1.5'

当你认为现在的develop分支中的代码已经是一个成熟的release版本的时候,这意味着:首先它包括所有新的功能和必要的修复;其二,它已经被彻底的测试过了。如果上述两点都满足,那就可以创建release分支了。release分支是使用版本号命名的,这个命名方案会让git-flow在我们完成release后,适当的自动去标记那些release提交。

完成release

使用如下命令完成release分支

git flow release finish 1.1.5

该命令会完成如下一系列操作:

  1. 首先,git-flow会拉去远程仓库,以确保目前是最新的release版本
  2. 然后,release的内容会被合并到master分支和develop分支,这样不仅产品分支(master分支)的代码是最新的版本,功能分支也会基于最新代码
  3. 最后,版本分支会被删除,并且回到develop分支

为了便于识别和做历史参考,release提交会被标记上这个release的名字

紧急修复(hotfix分支)

很多时候,仅仅在几个小时或几天之后,master分支中的代码可能就会出现一些问题。在这种情况下,git-flow提供了一个特定的hotfix分支

创建hotfix

$ git flow hotfix start missing-link

这个命令会创建一个名为hotfix/missing-link的分支。因为这是对产品代码进行修复,所以这个hotfix分支是基于master分支。

hotfix分支这和release分支最明显的区别:release分支都是基于develop分支的;而hotfix分支是基于master分支的。

完成hotfix

在把我们的修复提交到hotfix分支,并测试通过之后,就可以去结束它了:

git flow hotfix finish missing-link

该命令会完成如下一系列操作:

  1. 首先,完成的改动被合并到master分支中,同时也会合并到develop分支中,这样就可以确保这个错误不会再次出现在下一个release分支中
  2. 然后,这个hotfix分支将被标记起来以便参考
  3. 最后,这个hotfix分支将被删除,然后切换到develop分支上

整个流程

               image
上一篇下一篇

猜你喜欢

热点阅读