一、主要分支管理
1.master
主分支:生产环境运行代码,包含上线版本的tag信息;
2.develop
开发分支:开发环境日常代码更新与合并分支,保持最新最全功能代码;
3.feature
功能分支:新功能分支,从develop拉取,代表正在开发新功能的分支,不同的feature分支不能互相合并;
4.release
预发布分支:从develop拉取,发布到测试环境或者预生产环境的分支,开发人员可基于此分支进行bug修改;
5.hotfix
修补分支:从master拉取,快速修复线上bug,修复完成需合并至master和develop分支,然后删除此分支;
二、分支命名与开发规范
1.master
不允许开发,只允许从release和hotfix分支合并;代码的提交必须有tag信息;
//合并分支至master分支
git merge –no-ff release-0.1.1
//-a 指定tag名称 (eg. 主版本号.次版本号.bug修复版本号);-m 指定tag说明文字
git tag -a 0.1.1 -m"*功能已完成,bug已修复"
//推送标签到远程
//1.git push origin <tagname>;
//2.git push origin --tags;一次性推送全部尚未推送到远程的本地标签
git push origin 0.0.1
//删除本地tag,-d 指定tag名称
git tag -d 0.1.1
//删除远程tag:
//1.git push origin --delete tag <tagname>
//2.git push origin :refs/tags/<tagname>
git push origin --delete tag 0.1.1
git push origin :refs/tags/0.1.1
2.develop
develop主分支不允许开发,只允许从feature分支或develop-[date](注.develop-[date]非必要,与release分支作用相同,当新功能进入开发时,未出现对应的release分支,可新建develop-日期进行开发,相应的release分支建立后应删除此分支)合并;
3.feature
功能分支,命名为feature-<功能名>,新功能开发分支,开发者从feature分支拉取本地分支进行开发、提交、解决冲突;不能重复从develop分支拉取代码到此分支,以免不同feature分支的代码污染,如有必要bug应在release分支进行修复,将release分支合并至develop和feature分支;
//创建名称为dev的分支并切换到该分支上
git checkout -b <branchname>
//合并指定分支到当前分支
git merge <branchname>
4.release分支
预发布分支命名,release-主版本-次版本号-0,(eg: release-1.1.0);从develop拉取,部署在测试/预生产环境,开发者在此分支上进行bug修复,可重复向develop合并。