Git Flow使用规范
Git Flow使用规范
Sourcetree使用
Clone远程项目或者Add本地git项目
初始化Git Flow
切换相应的项目tab,点击右上角的Git工作流按钮,弹框点击确定初始化gitflow。也可通过git命令行(git flow init )初始化,提示选择一个分支作为功能分支基础版本(一般dev/develop分支)。
使用Git Flow
点击Git工作流,新增功能分支feature,发布分支release, 修复分支hotfix 。
新建功能分支
关闭功能分支
开发完成后,点击完成功能按钮,并按具体情况选择是否保留分支,建议保留一段时间后再清除。发布版本操作和修复版本操作类似。
分支命令规范
- 功能开发分支名:feature_xxx功能英文名称_需求id编号
- 开发分支:dev(develop)
- 待发布分支:release
- 生产分支:master
- hotfix修复分支:fix_功能名称_V功能版本号+1
注意: 除历史待上线分支外,git仓库只会存在以下分支:
master
dev
feature/feature_xxx
release/release_xxx
hotfix/hotfix_xxx
分支操作规范
开发阶段:创建功能分支,开发完成finish并保留feature_xxx分支。
测试阶段:在feature_xxx修改,继续finish并保留feature_xxx分支。
验收阶段:只能在release_xxx分支修改bug。
需求回滚:删除dev分支,重新拉取master到dev分支,重新选择保留的功能分支finish和重新创建release发版分支。
上线完成:需求上线成功,master代码手动合并到dev分支,相关的feature_xxx和release_xxx分支需要及时手动删除。
Git Flow常用命令
- git flow init:初始化Git Flow工作流程。这个命令将为您的项目配置Git Flow,并创建所需的分支(如master、develop等)。
- git flow feature start <feature-name>:创建一个新的功能分支并切换到该分支上开始开发新功能。
- git flow feature finish <feature-name>:完成一个功能分支的开发并将其合并回develop分支。在合并完成后,该功能分支将被删除。
- git flow release start <release-version>:创建一个新的发布分支,准备进行版本发布。通常在该分支上进行版本相关的bug修复和准备工作。
- git flow release finish <release-version>:完成一个发布分支,合并回master分支,同时也会将修改合并回develop分支。在合并完成后,会为该版本打上标签,并删除发布分支。
- git flow hotfix start <version>:创建一个新的热修复分支,用于紧急修复生产环境中的bug。
- git flow hotfix finish <version>:完成一个热修复分支,将修复的内容合并回master分支和develop分支,并为修复版本打上标签。
Q&A
- 创建发版分支报错,因为远程已经存在release分支,用gitflow创建发版分支release/release_xxx会出现分支冲突。
解决方案:删除远程和本地release分支或者修改release名称。首次jekins发版也会报错,找@刘国晋 帮忙清除下原有分支缓存。
- 本地创建多个hotfix分支报错。
解决方案:本地已经存在hotfix分支,删掉所有的本地的hotfix分支,重新创建就可以了。
- 多次关闭hotfix分支报错。
解决方案:因为之前finish已经默认打过与hotfix分支同名的Tag,按需要可以:1.手动填写标签名称更换标签名称。2.删掉已经打过同名的Tag. 3.去掉勾选,不打此次Tag。