Hex

一个完整的GitFlow

2016-12-22

一个完整的GitFlow

简要说明:就像代码需要代码规范一样,代码管理同样需要一个清晰的流程和规范本。
本案例主要展示了一个项目通过使用GitFlow管理代码的从特性开发到测试、发布、热修复和代码回归的整个流程。
PS:本案例中涉及到的分支的新建、合并和删除等操作都可以在GitLab上完成。


1.项目初始化

  • 在 GitLab上创建项目 “GitFlowDemo”

    在 GitLab上创建项目 "GitFlowDemo"

  • 目前只有一个分支 master

    目前只有一个分支 master

  • 本地获取项目

    目前只有一个分支 master

  • 首次提交,添加文件 “Demo.md”

    首次提交

2.添加 Develop 分支

  • 添加develop分支
1
2
git branch develop
git push -u origin develop

add develop

  • gitlab上已经存在develop分支

dev has already in gitlab1

  • develop和master分支

dev has already in gitlab2

3.开始新Feature开发

  • 基于develop添加Feature分支并推送到远端
1
2
3
git branch feature/fea_AAA
git checkout feature/fea_AAA
git push -u origin feature/fea_AAA

add featuee

  • gitlab 上出现feature/fea_AAA分支

gitlab

  • 做一些改动并提交到feature/fea_AAA
1
2
3
git status
git add Demo.md
git commit -m "[mod] add feature code"

add some feature

  • gitlab

gitlab

4.完成Feature

  • 拉取develop更新后合并develop至当前特性分支
1
2
git pull origin develop
git merge develop

merge develop

  • 切回develop分支,合并特性分支至develop分支后推送到远端分支(须确保特性分支经过测试)
1
2
3
git checkout develop
git merge feature/fea_AAA
git push origin develop

merge fea

  • gitlab上develop和feature/fea_AAA已经在同一节点

gitlab

5.开始Relase

  • 基于develop 添加Release分支并推送到远端
1
2
3
git branch release/release_1.0.0
git checkout release/release_1.0.0
git push -u origin release/release_1.0.0

add release

  • gitlab 上出现release/release_1.0.0分支

gitlab

6.完成Release(正式发布后进行)

  • 合并Release到master
1
2
3
git checkout master
git merge release/release_1.0.0
git push

merge release

  • 合并Release到Develop
1
2
3
git checkout develop
git merge release/release_1.0.0
git push

merge release

  • 在master打标签 v1.0.0 记录本次发布

gitlabtag1

gitlabtag2

gitlabtag3

  • 删除Release分支

delete release

7.开始Hotfix (和开始Release类似)

  • 基于 master 添加HotFix分支并推送到远端。
1
2
3
4
git checkout master
git branch hotfix/hotfix_1.0.0
git checkout hotfix/hotfix_1.0.0
git push -u origin hotfix/hotfix_1.0.0

8.完成Hotfix(和完成Release类似)

  • 合并Hotfix到master
1
2
3
git checkout master
git merge hotfix_1.0.0
git push
  • 合并Hotfix到develop
1
2
3
git checkout develop
git merge hotfix_1.0.0
git push
  • 在master打标签 v1.0.1 记录本次发布

tags

至此一个完整的GitFlow完成。