分支管理:master,release,hotfix,sit,dev等等,听着都麻烦。

6,473 阅读3分钟

背景

从一开始的svn到后来接触到git,到目前已经和git打交道比较多了,突然觉得可以把项目中所用到一些分支的管理方式分享出来,希望帮助到大家。

分支介绍

现在使用git一般很少是单个分支来使用,通常是多个分支来进行,接下来我以我最新的项目中所用到的分支,来做一些介绍。

master

  • master分支代码只能被release分支分支合并,且合并动作只能由特定管理员进行此操作。
  • master分支是保护分支,开发人员不可直接push到远程仓库的master分支

release

  • 命名规则:release/*,“*”一般是标识项目、第几期、日期等
  • 该分支是保护分支,开发人员不可直接push,一般选定某个人进行整体的把控和push
  • 该分支是生产投产分支
  • 该分支每次基于master分支拉取

dev

  • 这个是作为开发分支,大家都可以基于此分支进行开发
  • 这个分支的代码要求是本地启动没问题,不影响其他人的代码

hotfix

  • 这个分支一般是作为紧急修复分支,当前release发布后发现问题后需要该分支
  • 该分支一般从当前release分支拉取
  • 该分支开发完后需要合并到release分支以及dev分支

feat

  • 该分支一般是一个长期的功能需要持续开发或调整使用
  • 该分支基于release创建或者基于稳定的dev创建也可以
  • 一般开发完后需要合并到dev分支

分支使用

以上是简单介绍了几个分支,接下来我针对以上分支,梳理一些场景,方便大家理解。

首先从master创建一个release分支作为本次投产的分支,然后再从master拉取一个dev分支方便大家开发,dev分支我命名为:dev/soe,然后我就在这个分支上进行开发,其他人也是这样。

然后当我开发完某个任务后,又有一个任务,但是呢,这个任务需要做,只是是否要上这次的投产待定,所以为了不影响到大家的开发,我就不能在dev分支进行开发了,此时我基于目前已经稳定了的dev分支创建了一个feat分支,叫做:feat/sonar,主要是用来修复一些扫描的问题,在此期间,如果我又接到了开发的任务,仍然可以切换到dev来开发,并不影响。

当开发工作完成后,并且也基于dev分支进行了测试,感觉没问题之后,我就会把dev分支的代码合并到release上。

当release投产之后,如果业务验证过也没有问题,那么就可以由专人把release合并到master了,如果发现了问题,那么此时就需要基于release创建一个hotfix分支,开发人员在此分支进行问题的修复,修复完成并测试后,合并到release分支和sit分支。然后再使用release分支进行投产。

总结

以上就是我在项目中,对分支的使用,我觉得关于分支使用看团队以及项目的需要,不必要定死去如何如何,如果有的项目不规定必须要release投产,那么hotfix就不必使用,直接release修改完合并也未尝不可,所以大家在项目中是如何使用的呢?可以评论区一起讨论分享。

致谢

感谢你的耐心阅读,如果我的分享对你有所启发或帮助,就给个赞呗,很开心能帮到别人。