BlueXIII's Blog

热爱技术,持续学习

0%

gitflow笔记

安装

macOS:

1
brew install git-flow-avh

Ubuntu:

1
apt-get install git-flow

Windows:

1
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

默认有master及develop两个长期分支

分支说明

主要分支:

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

2018-01-22-11-08-40

辅助分支:

  • feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop
  • release: 准备要发布版本的分支, 用来修复 bug. 基于 develop, 完成后 merge 回 develop 和 master
  • hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop

2018-01-22-11-09-25

Feature 新特性

新特性帮助

1
git flow feature help

增加新特性

1
git flow feature start rss-feed

完成新特性

1
git flow feature finish rss-feed

Publish 推送

此部分为可选。新特性分支可以只存在于本机,不向远程仓库推送

推送新特性

可以使用publish命令将一个feature分支推到远程服务器

1
git flow feature publish rss-feed

或者直接:

1
git push origin feature/rss-feed

取得一个发布的新特性分支

1
git flow feature pull origin rss-feed

Release 发布

release分支是基于develop分支的

准备Release

1
2
git flow release start 1.1.5
Switched to a new branch 'release/1.1.5'

现在,可以在release/1.1.5分支,开始最后的准备工作,例如项目里的某些文件需要记录版本号

完成Release

1
git flow release finish 1.1.5

git-flow自动做了以下事情:

  1. 拉取远程仓库,以确保目前是最新的版本。
  2. release的内容会被合并到 master和develop两个分支中去,这样不仅产品代码为最新的版本,而且新的功能分支也将基于最新代码。
  3. 为便于识别和做历史参考,release提交会被标记上这个release的名字(在我们的例子里是 1.1.5)
  4. 清理操作,版本分支会被删除,并且回到develop

Hotfix 紧急修复

hotfix分支是基于master分支的

开始Hotfix

1
git flow hotfix start missing-link

完成Hotfix

1
git flow hotfix finish VERSION

命令汇总

2018-01-22-11-09-49

参考文档