git 修补程序分支的用途

purpose of git hotfix branch

CMIIW,上面著名的 git-flow 工作流程建议进行热修复的步骤如下: 稳定分支:'master' 工作分支:'develop'

  1. 分支 'hotfix' 来自 'master'
  2. 修复并提交 'hotfix'
  3. 合并'hotfix'到'master'
  4. 合并'hotfix'到'develop'
  5. del 'hotfix'

我的问题是为什么我们需要创建一个 'hotfix' 分支?如果我们这样做,[harm/drawback/lack 的灵​​活性会是多少

  1. 结帐'master'
  2. 修复并提交 'master' 并将提交称为“DEBUG:一些修复”
  3. 合并'master'到'develop'

我的猜测是 'hotfix' 分支试图遵循与 'feature branch' 相同的范例,我们不直接承诺 'develop' 和 'master'。但是 'hotfix' 分支在我的案例中通常只需要很少的代码更改(例如,去掉导致 SQL 错误的额外逗号),我个人认为创建新分支。

如果两种方式都可以,我该如何判断什么时候用什么?基于修复的数量?

如果我提出的方法不好,您能否具体说明它可能会导致哪些问题,或者与标准方法相比它没有提供哪些灵活性?

master/ () 应该随时反映生产中的 运行。

并且当您在修补程序分支上进行提交时,您需要 test/validate 这些提交确实修复了错误。
只有完成验证步骤后,您才能合并到 master/main.
并且可以开发(虽然你可能在生产中有一个不再与开发相关的错误,因为新功能使所述错误没有实际意义)

我们的目标也是避免 来自 master/main 的任何合并。您合并到它,而不是从它合并,以限制任何可能的合并冲突。
另外,合并是用--no-ff完成的(没有fast-forward),正如petervanderdoes/gitflow-avh issue 257中所讨论的:目标是清楚地看到合并创建的开发提交来自哪个hotfix分支来自(而不只是来自“master/main”)。
同样,并非所有发布到 master 的错误修复都完全适用于 develop