git flow进行代码版本管理

1. 什么是git flow

如下图
在这里插入图片描述

2. Git Flow常用分支说明

2.1 Production分支

就是我们经常使用的Master分支,这个分支就是生产环境运行的代码,也是最近发布的Release,这个分支只能从其它分支合并,不能在这个分支上直接进行修改

2.2 Develop分支

这个分支是我们的主开发分支,包含所有要发布到下一个Release的代码,这个分支主要是其它的功能开发分支合并到该分支,比如Feature分支

2.3 Feature分支

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release

2.4 Release分支

当你需要发布一个新的Release的时候,我们基于Develop分支创建一个Release分支,然后将其合并到Master和Develop分支

2.5 Hotfix分支

当生产环境(线上)发现新的bug时,我们需要创建一个Hotfix分支,完成bug修复后,我们将其合并回Master和Develop分支,这样Hotfix的改动会进入下一个Release

3. 如何应用Git Flow

3.1 Master/Devlop 分支

  1. Master主干分支
    (1)所有在Master分支上的Commit应该打上Tag,一般情况下Master不存在Commit
    (2)不可删除
  2. Develop主开发分支
    (1)Devlop分支基于Master分支创建
    (2)不可删除
  3. master和develop并行
  4. master上始终是最稳定的代码,develop是正在开发的代码
  5. 生命周期:一直延续

在这里插入图片描述

3.2 Feature分支(功能开发)

  1. 创建:Feature分支基于Develop分支创建
  2. 命名:feature-**
  3. 注意:Feature分支做完相关功能后,必须合并回Develop分支
  4. 生命周期:有限。合并完分支后一般会删点这个Feature分支,毕竟保留下来意义也不大。
    在这里插入图片描述

3.3 Release分支(预发布)

  1. 创建:Release分支基于Develop分支创建
  2. 用途:打完Release分支之后,我们可以在这个Release分支上测试,修改Bug等。同时,其它开发人员可以基于Develop分支新建Feature (记住:一旦打了Release分支之后不要从Develop分支上合并新的改动到Release分支)
  3. 注意:发布Release分支时,合并Release到Master和Develop, 同时在Master分支上打个Tag记住Release版本号,然后可以删除Release分支了。
  4. 生命周期:有限
    在这里插入图片描述

3.4 Hotfix分支(bug修复)

  1. 创建:hotfix分支基于Master分支创建
  2. 注意:开发完后需要合并回Master和Develop分支,同时在Master上打一个tag
  3. 生命周期:有限。改完bug,即可删除
    在这里插入图片描述

4. git flow命令示例

4.1 创建Develop

git branch develop  
git push -u origin develop

4.2 开始Feature

# 通过develop新建feaeure分支
git checkout -b feature develop
# 或者, 推送至远程服务器:
git push -u origin feature    

# 修改md文件   
git status
git add .
git commit    

4.3 完成Feature

git pull origin develop
git checkout develop 

#--no-ff:不使用fast-forward方式合并,保留分支的commit历史
#--squash:使用squash方式合并,把多次分支commit历史压缩为一次

git merge --no-ff feature
git push origin develop

git branch -d some-feature

# 如果需要删除远程feature分支:
git push origin --delete feature   

4.4 开始Release

git checkout -b release-0.1.0 develop

4.5 完成Release

git checkout master
git merge --no-ff release-0.1.0
git push

git checkout develop
git merge --no-ff release-0.1.0
git push


git branch -d release-0.1.0
git push origin --delete release-0.1.0   

# 合并master/devlop分支之后,打上tag 
git tag -a v0.1.0 master
git push --tags

4.6 开始Hotfix

git checkout -b hotfix-0.1.1 master  

4.7 完成Hotfix

git checkout master
git merge --no-ff hotfix-0.1.1
git push

git checkout develop
git merge --no-ff hotfix-0.1.1
git push

git branch -d hotfix-0.1.1
git push origin --delete  hotfix-0.1.1 

git tag -a v0.1.1 master
git push --tags

5. 附录

参考:

  1. https://www.jianshu.com/p/41910dc6ef29
  2. https://blog.csdn.net/hj7jay/article/details/84527062
  3. https://nvie.com/posts/a-successful-git-branching-model/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值