使用长 运行 'develop' 分支与 Git?

Use of a long-running 'develop' branch with Git?

一个与 Git 管理大型项目的良好实践相关的问题:我听说通常的做法是有一个 develop 分支,在那里你进行开发,以保持 master 分支仅适用于 stable/production 版本。 我的问题是:为什么需要这个?我不是在问 opinions/debates,而是在问这种技术的利弊。

我的问题是它混合了两个概念:版本系统和发布系统。当你有一个 stable/production 版本时,你应该用标签标记它——这将是一个版本。其他任何东西显然都在开发中。

我更不清楚,因为通常的做法是有 feature 个分支。一旦 feature 分支稳定,将其合并到 develop 分支而不是直接合并到 master 分支有什么意义?同样,在我看来,只有 tags 应该用于显示稳定版本,而不是特定分支。因此,对我来说,在与 feature 分支合并后,在 master 中有不稳定的代码是可以的。

我要补充一点,在GitHub上,发布机制是基于tags,而不是基于特定分支中的push动作;对我来说,这又是反对使用 develop 分支的观点。

当你有一个最前沿的版本时,就需要它。逻辑如下:

  • Master 总是有稳定的代码,其中包含最新稳定版本中不存在但适合在开发环境中使用的新稳定功能
  • 标签显示一个里程碑,一个稳定的生产就绪版本
  • 开发分支包含正在积极开发中的错误功能,不适合在开发环境中使用