Git Flow 概念
在使用Git的过程中如果没有清晰流程和规划,否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。
Git Flow 的常用分支
- Production 分支
也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改
- Develop 分支
这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支
- Feature 分支
这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release
- Release分支
当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支
- Hotfix分支
当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release
Git Flow 如何使用
- Master/Devlop 分支
所有在Master分支上的Commit应该打上Tag,一般情况下Master不存在Commit,Devlop分支基于Master分支创建
- Feature 分支
Feature分支做完后,必须合并回Develop分支, 合并完分支后一般会删点这个Feature分支,毕竟保留下来意义也不大。
- Hotfix 分支
hotfix分支基于Master分支创建,开发完后需要合并回Master和Develop分支,同时在Master上打一个tag。
Git Flow 命令示例
初始化
git flow init
Feature
# 新建feaeure分支
git flow feature start MYFEATURE
# 发布新特性
git flow feature publish MYFEATURE
# 完成feaeure
git flow feature finish MYFEATURE
# 取得一个发布的新特性分支
git flow feature pull origin MYFEATURE
# 跟踪在origin上的特性分支
git flow feature track MYFEATURE
Release
# 开始创建一个 release 分支
# 你可以选择提供一个 [BASE] 参数,即提交记录的 sha-1 hash 值,来开启动 release 分支. 这个提交记录的 sha-1 hash 值必须是'develop' 分支下的。
git flow release start RELEASE [BASE]
# 发布 Release
git flow release publish RELEASE
# 完成 release 版本
git flow release finish RELEASE
# 签出 release 版本的远程变更
git flow release track RELEASE
# 打上tag
git tag -a v0.1.0 RELEAS
git push --tags
Hotfix
# 开始 git flow 紧急修复
git flow hotfix start VERSION [BASENAME]
# 完成紧急修复
git flow hotfix finish VERSION
使用建议
如果你的代码没有清晰流程和规划,那么强烈推荐使用Vincent Driessen 提出的GIt flow
让你的代码管理骚起来。
文章评论