主分支,存放经过测试,已经完全稳定的代码,即其放的代码是可随时直接上生产使用的代码。主分支不允许提交代码,release分支经过充分测试后,打tag版本号并合并到master分支
开发分支,一开始从master分支中分离出来,用于开发者存放基本稳定代码
功能分支,每次开发新功能时候从develop中fork出来一个feature分支,分支名可以采用feature/*的形式命名,如:feature/需求编号-日期,feature/31124-190618,开发完成合并到develop分支,不用时可以将其删除
预发分支,发布正式版本之前,需要一个预发布的版本进行测试,预发分支一般从从develop拉出,release分支版本命名规范:由4个数字段表示,大版本. Release版本.Hotfix版本.YYmmdd,如release/2.2.0.190403,预发布结束以后,打tag并合并进Develop和Master分支
修补bug分支,若遇到生产出现bug,需要紧急修复,确定对应的release版本后,从master拉出一个hotfix分支,修改完成测试后打tag合并到develop和master分支,如分支名 hotfix/2.2.0.190411。
创建分支
如创建feature/31124-190618分支,从develop上,创建并切换feature分支:
$ git checkout develop #切换到dev分支
$ git checkout -b feature/31124-190618 #创建并切换到feature/31124-190618分支
把创建的分支feature推送远程仓库:
$ git push -u origin feature/31124-190618
合并分支:
如把feature/31124-190618分支合并到develop 分支
先切换分支: $ git checkout develop
再合并分支:$ git merge --no-ff feature/31124-190618
最终推送到远程仓库:$ git push origin develop
假如开发一个“评论“”功能
1、 克隆现有仓库
$ git clone http://git.uwscloud.com/uws/uws-data.git
2、创建并切换到feature/31124-190618分支
git checkout develop #切换到dev分支
git checkout -b feature/31124-190618 #创建并切换到feature/31124-190618分支
git push -u origin feature/31124-190618 #把创建的分支推送到远程仓库
3、开发过程中,定期把dev代码合并到feature分支,feature分支始终保持最新代码
git checkout feature/31124-190618 #切换到feature/31124-190618分支
git merge --no-ff develop #把dev代码合并大feature
4、开发完成提交
git add .
git commit -m 'finish discuss feature'
5、开发完成,提交测试,从develop中fork出release,并把feature合并到release,在release上测试并修改bug
git checkout develop #切换到dev分支
git checkout -b release/2.2.0-190618 #创建并切换到release/2.2.0-190618分支
git merge --no-ff feature-31124-190618 #把开发完成的feature分支合并到release/2.2.0-190618
6、直接上线测试通过的release版本,上线后把将release合并到develop和master
#保持release本地最新
git pull release/2.2.0-190618
#release合并到develop并push到远程
git checkout develop
git pull develop
git merge --no-ff release/2.2.0-190618
git push
#release合并到master并push到远程
git checkout master
git pull master
git merge --no-ff release/2.2.0-190618
git push
9、对合并生成的新节点,打一个tag
# 对合并生成的新节点,做一个标签
git tag -a release/2.2.0-190618
git push --tags #push到远程
#没用可以删除release
git branch -d release/2.2.0-190618
git push origin --delete release/2.2.0-190618
10、线上出问题,创建一个修补bug分支
git checkout master
git checkout -b hotfix/2.2.0-190618
11、bug解决后,hotfix合并到develop和master分支
#hotfix合并到develop并push到远程
git checkout develop
git pull develop
git merge --no-ff hotfix/2.2.0-190618
git push
#hotfix合并到master并push到远程
git checkout master
git pull master
git merge --no-ff hotfix/2.2.0-190618
git push
# 打tag
git tag -a hotfix/2.2.0-190618 #在当前分支上打一个tag
git tag -a hotfix/2.2.0-190618 be6fabcd #在当前分支的某个提交上打一个tag
git push --tags #将当前分支及所有新打的tag推送远程仓库
参考:http://www.ruanyifeng.com/blog/2012/07/git.html
参考:https://blog.csdn.net/aaaaaaliang/article/details/79451598