branch和tag

在源代码的管理过程中,我们经常会听到拉分支(branch)与打标签(tag),二者的区别是什么呢?

  • branch用于并行开发,tag用于版本管理。
  • branch指向一个具体的开发流程,tag指向一个特定的commit提交。

一般在项目的开发过程中都会有CI(Continuous integration,持续集成),即自动化构建、测试、发布。于是常约定以下常驻branch:

develop分支:用于持续开发的分支,每个开发小组在这个分支上进行小步的持续迭代,正常的code review和开发级的CI也在这个分

       支上进行。当开发完一个迭代(sprint),开发小组有信心转测时,就将代码合入release分支。

release分支:用于发布的过程分支,包括开发转测、测试和bugfix以及发布上线的过程,当发布成功时要将代码合到master分支上,

并在master分支打上一个tag。

master分支:有质量保证的、可安全运行的分支。禁止直接提交代码,只用于代码的合并,在这个分支上的代码永远是可用的、稳定的。

当拉一个分支进行开发时,应该基于master分支。

hotfix分支:当线上出现bug并需要修正时,需要在上次上线的tag处临时拉一个hotfix分支进行问题修复,修复后需要将其合入同步到

release和master分支并在master打上一个tag。

详见下图:

猜你喜欢

转载自www.cnblogs.com/tongyishu/p/12506112.html
今日推荐