Gitflow 工作流

Gitflow 工作流定义了一个围绕项目发布的严格分支模型。其优点是清晰可控,使多人项目协作开发更加规范;缺点是相对复杂,需要同时维护两个长期分支。

分支介绍

项目中存在两个长期分支

  • 主分支(master)
  • 开发分支 (develop)

master 分支一般对应的是生产环境的代码,是稳定的发布版本;develop 分支对应的是开发环境的代码,存放的都是最新的开发版。

三种短期分支

  • 功能分支(feature branch)
  • 补丁分支(hotfix branch)
  • 预发分支(release branch)

一旦完成开发,它们就会被合并进 develop 或 master,然后被删除。

安装

mac

brew install git-flow-avh

linux

apt-get install git-flow

widows

wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

常用命令

  1. 初始化

git flow init

  1. 开发新特性,feature 分支

创建一个基于 develop分支的 MYFEATURE feature 分支,并切换到该分支下

git flow feature start MYFEATURE

完成开发新特性,合并 MYFEATURE 分支到 develop,删除这个新特性分支,并切换回 develop 分支

git flow feature finish MYFEATURE

发布新特性分支到远程服务器

git flow feature publish MYFEATURE

更新其它用户发布的新特性分支

git flow feature pull origin MYFEATURE

  1. 准备预发布版本, release 分支

创建 RELEASE 分支,可选参数 BASE 是 develop 分支提交记录的 sha-1 hash 值,用来启动 release 分支

git flow release start RELEASE [BASE]

发布分支到远程服务器

git flow release publish RELEASE

完成开发 release 分支,合并到 master 分支、develop 分支,添加 Tag 标签,最后移除 release 分支

git flow release finish RELEASE

  1. 紧急修复, hotfix 分支

git flow hotfix start VERSION [BASENAME]

完成紧急修复分支,代码合并到 developmaster 分支。相应地,master 分支打上修正版本的 Tag 标签。

git flow hotfix finish VERSION

git flow 命令

参考文献

路漫漫其修远,要走的路还很长