赞
踩
现在市面主流的git版本管理模式有三个:git flow,github flow,gitlab flow。
git flow 是最早的也是最熟悉的一种分支模型了,git flow 的分支模型如下:
步骤
创建功能分支
# 从develop创建功能分支$ git checkout -b myfeature develop
完成功能分支,合并develop,并推送到远程仓库
# 切换到develop分支$ git checkout develop# develop分支合并功能分支$ git merge --no-ff myfeature# 删除功能分支$ git branch -d myfeature# 推到远程仓库$ git push origin develop
版本发布前,创建版本分支
# 从develop分支切到版本发布分支$ git checkout -b release-1.2 develop
完成版本测试后,合并到master分支上
# 切换到master$ git checkout master# master合并release分支$ git merge --no-ff release-1.2# 给master分支打tag$ git tag -a 1.2
生产环境测试没有问题后,将release分支合并会develop分支,并删除release分支
# 切换到develop分支$ git checkout develop# develop分支合并release分支$ git merge --no-ff release-1.2# 删除release分支$ git branch -d release-1.2
生产环境上发现bug,直接通过hotfix快速修复:
# 从master切出一条分支,紧急修复问题$ git checkout -b hotfix-1.2 master
完成问题修复后,合并进master:
# 切到master分支$ git checkout master# master分支合并hotfix分支$ git merge --no-ff hotfix-1.2# 打上新tag$ git tag -a 1.2# 切换到develop分支
如果当前release分支还未删除,合并到release分支,再由release分支合并到develop分支:
$ git checkout release-1.2# release-1.2合并hotfix分支$ git merge --no-ff hotfix-1.2# 删除hotfix分支$ git branch -d hotfix-1.2# 切换到develop分支$ git checkout develop# develop分支合并release分支$ git merge --no-ff release-1.2
如果release分支已删除,则直接合并到develop分支:
# 切换到develop分支$ git checkout develop# develop分支合并release分支$ git merge --no-ff hotfix-1.2# 删除hotfix分支$ git branch -d hotfix-1.2
优点:
缺点:
面对git flow的繁琐,github flow分支模型仅具有功能分支和主分支,将所有内容合并到master分支中并进行部署,采用pull request方式进行代码合并,强调持续集成和连续交付。
优点:
缺点:
结合了git flow分支模型和github flow分支模型:
要使用好cherry-pick,每个提交要清晰简洁
优点:
缺点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。