git-flow 在团队中的实践
文档规范在一个高效的团队里面必不可少。工作上,我们也从起初的 SVN 转到了 Git 工具上。
Git 作为出色的项目版本管理工具,究竟有什么优点,该如何使用?下面我们来一一说明。
【介绍】
Git 是一个开源高效的分布式版本管理工具,相比 SVN 集中式工具,最大的特点是,Git 在每个本地都是一个完整的版本库,各自处理版本开发,开发完成后,再推送到远程的主库
不同的开发人员,再分别拉取各自的更新即可。
【常用分支】
master
: 主分支,也就是产品分支,这个分支保持和线上的代码完全一致。该分支最为稳定功能最为完整的随时可发布的代码
develop
: 开发分支,包含所有下一个版本的开发代码,也是团队人员需要保持最新版本的分支,也是功能最新最全的分支
feature/*
: 功能分支。基于 develop 分支,每个功能单独建立一个分支,例如:feature/user-add,完成时,合并到 develop 分支,合并完成后,删除或保留分支
bugfix/*
: bug 修复分支,基于 develop 分支的修复不紧急的 bug 。对于一些完成的功能未上线且已经合并到了 develop 分支,此时发现 Bug 则建立相应分支,修复后,合并到 develop ,并删除该分支
hotfix
: 基于主分支的热修复分支,线上出现 bug 需要紧急修复时,建立热更新分支,处理完成后,合并到 master 分支和 develop 分支,合并后删除分支
release/*
: 版本分支,发布新版本时,基于 develop 分支创建,创建完成后,合并到 master 分支,并在 master 分支打上标签 tag ,完成后,可删除或保留 release 分支
【分支规范】
feature
功能(特性)分支: 名称应该为能准确表达该功能的英文表述
例如: feature/user-add
新增用户,feature/user-module
用户模块 等
release
版本预分布分支: 名称应该为该版本主要功能的英文描述,或版本号
例如: release/user-module
用户模块版本,feature/v1.0.0
1.0.0 版本
【 Bug 修复及热修复分支 】
名称应能描述本次修复的主要功能点bugfix/*
hotfix/*
例如: bugfix/user-add
修复添加用户功能,hotfix/user-edit
线上热修复编辑用户功能
【总结】
日常开发中,需要注意以下几点内容:
所有的新功能开发,bug修复(非紧急)都要从
develop
分支拉取新的分支进行开发,开发完成自测没有问题再合并到develop
分支release
分支发布到测试环境,由开发人员创建release
分支(需要测试人员提出需求)并发布到测试环境,如果测试过程中发现bug,需要开发人员track到该release
分支修复bug,上线前需要测试人员提交merge request到master
分支,准备上线,同时需要合并回develop
分支。只有紧急情况下才允许从
master
上拉取hotfix
分支,hotfix
分支需要最终同时合并到develop
和master
分支(共两次 merge 操作)原则上除了
master
和develop
分支,其它分支在开发完成后都要删除,当然也可以按需保留
【参考来源】