Git 分支管理在优必选教育开发部的实践

ℹ️ 本文发布于 2023-10-26 请注意文中内容的时效性。

master

日常开发不使用,只用于同步代码。

develop

开发使用的主要分支。

feature/xxx

feature 分支从 develop 分支拉出,用于功能需求开发。实际命名时,可以根据需求版本号命名,也可以根据功能命名。

以版本号命名的 feature/1.0.0 分支,应当作为当前版本的主要分支,其他 feature 分支应该由此拉出,也应该回到此分支。

版本完成后,通过 --squash 合到 develop 分支,并删除该 feature 分支。

哪些情况需要使用 feature 分支:

  • 尚不明确上线时间的功能,先使用 feature 分支进行代码同步保存。
  • 多个新功能并行,又互不依赖,则各自使用 feature 分支进行开发。比如:feature/editor, feature/vm
  • 多个版本并行,则各自使用 feature 分支进行开发。比如:feature/4.1.0, feature/4.2.0

release/xxx

release 分支可以从 develop 分支拉出,也可以从主要版本分支 feature/1.0.0 拉出。

当从 develop 分支拉出时,上线完成后,又合回 develop 分支,release 分支保留。(需要注意被 develop 代码影响稳定性)

当从 feature/1.0.0 分支拉出时,同步删除 feature/1.0.0 分支,之后以此 release 分支为版本的主要分支。

新特性绝不允许再合入 release 分支,而要合入 develop 分支,等待下一个版本。

  • 经过测试验证+上线评审,确定可上线,则从 feature 拉出 release 分支。比如:release/1.0.0

hotfix/xxx

一般来说,线上发现的问题,我们需要进行评审,优先放入下个版本处理。如果很严重,必须在当前版本修复,则仍然可以在release分支进行处理,并不一定需要hotfix分支。

参考