开发规范-Git分支管理
说明
- 对于大公司大项目,按照严格规范执行,毕竟出错后果很严重
- 对于人数少、迭代快、成长型团队来说,使用 master、dev、hotfix 分支即可,可提升工作效率
分支管理
大厂git分支管理规范:gitflow规范指南 - kevin_ying - 博客园
master
- 不能在 master 上直接修改,只能从 hotfix 或 release 分支合并过来
- 分支合并到 master 后,创建 tag 标签版本,版本号递增
- tag 标签的每个版本均可随时部署
hotfix
- 在 master 上发现新的 Bug 时,基于 master 创建一个 hotfix
- 开发完成后,合并回 master 和 develop 分支,删除该 hotfix 分支,master 创建 tag 标签版本
release
- 发布分支,基于 develop 分支创建,是用来测试的版本分支
- 测试开发完成后,合并回 master 和 develop 分支,删除该 release 分支,master 创建 tag 标签版本
develop
- 主开发分支,基于 master 创建。接收来自 feature 分支的合并
- 开发完成后(阶段性版本),创建 release 分支,有新需求则继续在 develop 分支上开发
feature
- 新功能开发分支(开发周期比较长,可以引入该分支),基于 develop 分支创建
- 开发完成后,合并回 develop 分支,删除该 feature 分支。如果需要马上测试的话,基于 develop 创建 release 分支
Git Flow 命令示例
Develop
- 创建 develop
git branch develop
git push -u origin develop
Feature
- 开始 Feature
通过 develop 新建 feaeure 分支
git checkout -b feature develop
或者, 推送至远程服务器:
git push -u origin feature
修改 md 文件
git status
git add .
git commit - 完成 Feature
git pull origin develop
git checkout develop
–no-ff:不使用 fast-forward 方式合并,保留分支的 commit 历史
–squash:使用 squash 方式合并,把多次分支 commit 历史压缩为一次
git merge –no-ff feature
git push origin develop
git branch -d some-feature
如果需要删除远程 feature 分支:
git push origin –delete feature
Release
- 开始 Feature
git checkout -b release-0.1.0 develop - 完成 Feature
git checkout master
git merge –no-ff release-0.1.0
git push
git checkout develop
git merge –no-ff release-0.1.0
git push
git branch -d release-0.1.0
git push origin –delete release-0.1.0
合并 master/develop 分支之后,打上 tag
git tag -a v0.1.0 master
git push –tags
Hotfix
- 开始 Hotfix
git checkout -b hotfix-0.1.1 master - 完成 Hotfix
git checkout master
git merge –no-ff hotfix-0.1.1
git push
git checkout develop
git merge –no-ff hotfix-0.1.1
git push
git branch -d hotfix-0.1.1
git push origin –delete hotfix-0.1.1
git tag -a v0.1.1 master
git push –tags
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 王文哲的博客!