git flow
DESCRIPTION
珠三角技术沙龙-8月份TRANSCRIPT
![Page 2: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/2.jpg)
Why Git?
• 随意的分支 (Branch) 与合并 (Merge)
• 分布式的、本地的代码库 (Repository)
• 快捷、轻量• 任意的工作流程• GitHub
• …
![Page 3: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/3.jpg)
问题呢?• 把 Git 当 SVN 用,在 master 分支开发• 依然避免 Branch/Merge
• 任意的工作流程,让人无从下手• 依旧习惯集中式版本控制的思维• …
![Page 4: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/4.jpg)
Git Flow- by nvie
一种值得参考的工作流程
![Page 5: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/5.jpg)
![Page 6: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/6.jpg)
主分支
master, develop
![Page 7: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/7.jpg)
master, develop 分支• 用途:
– master HEAD - 正式版– develop HEAD - 最新的开发
版– 当 develop 足够稳定时候,将
合并到 master ,并且 tag 上发布版本号
• 存在周期:– 永远存在
![Page 8: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/8.jpg)
辅助分支
feature, release, hotfix
![Page 9: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/9.jpg)
feature 分支• 必须遵循:
– 从 develop 分支– 合并回 develop– 任意命名,除了 master, develop, relea
se-*, hotfix-*
• 用途:– 用于开发新的功能特性 (feature)
• 存在周期:– 合并到 develop 后删除
![Page 10: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/10.jpg)
![Page 11: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/11.jpg)
release 分支• 必须遵循:
– 从 develop 分支– 合并回 develop, master– 命名为 release-*
• 用途:– 为最终正式版做准备– 提交 (commit) 小的 bug fix
• 存在周期:– 合并到 develop 后删除
![Page 12: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/12.jpg)
hotfix 分支• 必须遵循:
– 从 master 分支– 合并回 develop, master– 命名为 hotfix-*
• 用途:– 同样为最终正式版做准备– 提交 (commit) 小的 bug fix– 正式版发生重大的错误,必须立刻修
复
• 存在周期:– 合并到 develop/release 后删除
![Page 13: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/13.jpg)
gitflow
![Page 14: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/14.jpg)
$ git flow init
No branches exist yet. Base branches must be created now.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? []
![Page 15: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/15.jpg)
$ git flow feature start login
$ git flow feature finish login
![Page 16: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/16.jpg)
$ git flow release start v0.1.0
$ git flow release finish v0.1.0
![Page 17: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/17.jpg)
git-flow-completion
Bash, Zsh
![Page 18: Git flow](https://reader035.vdocuments.pub/reader035/viewer/2022062418/5555a6fdd8b42a52568b4737/html5/thumbnails/18.jpg)
• A successful Git branching model– http://nvie.com/git-model
• Why aren’t you using git-flow?– http://jeffkreeftmeijer.com/2010/why-arent-you
-using-git-flow/
• http://github.com/nvie/gitflow
• http://github.com/bobthecow/git-flow-completion