Gitflow - 为什么当我完成一个功能分支时没有编辑器打开?

Gitflow - Why does no editor open when I finish a feature branch?

我在 linux.

上使用 gitflow

当我完成一个修补程序分支时,我的 vi 编辑器打开,我可以编写合并消息。合并消息现在在提交历史记录中。

但是当我完成功能分支时,没有 vi 编辑器打开,我不能写任何合并消息。所以commit history中没有踪迹。

这很烦人。 有人可以向我解释为什么吗?是配置问题吗?

创建功能分支:git flow feature start feature_branch

完成功能分支:git flow feature finish feature_branch。根据文档完成类似于:git checkout develop git merge feature_branch

虽然我多年来一直在使用 Git 流分支策略,但我承认我以前从未使用过 git flow 命令,但我只是测试了它们并且可以确认你的意思正在见证,但需要进行一些澄清。

据我所知,您不会被提示为任何合并提交编写提交消息。但是,当您完成 hotfixrelease 分支时, 系统会提示您编写 标记消息 ,这会发生也包含在合并提交消息详细信息中(在提交标题下方),因此看起来您正在编写合并提交消息。由于仅标记版本和修补程序,这就是为什么在完成功能分支时不会提示您使用编辑器的原因。

关于 --no-ff 合并,制定了以下规则:

  1. 完成 releasehotfix 分支时,总是使用 --no-ff 标志执行合并。
  2. 完成具有 2 个或更多新提交的 feature 分支时,将使用 --no-ff 标志执行合并。
  3. 当完成一个 feature 分支恰好有 1 个新提交时,合并是使用 --ff 标志执行的(这也是合并的默认值)。

请注意,在第三条规则中使用 -ff 意味着它会尽可能执行 fast-forward,这意味着有时会避免合并提交,这很有趣,因为据我所知,这在任何地方都不建议Git 流文档。这确实有意义,因为当您只有一个提交要合并时,强制合并提交不会获得任何信息。它仍然适用于显示所有已完成的 develop 分支的 --first-parent 视图特色分支。

旁注: 当我个人使用 Git Flow 时,我总是强制合并提交,即使是对于单个提交合并,因为我在自定义中添加了额外的 PR 信息合并提交消息。这是我不使用 git flow 命令的原因之一。 (此外,我们的 SCM 工具无论如何都会处理已完成的 Pull Request 的合并,因此没有人会自己“完成”任何事情。)