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



我在linux上使用gitflow

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

但是当我完成特性分支时,没有vi编辑器打开,我不能写合并消息。因此,在提交历史中没有任何跟踪。

这是烦人的。有人能给我解释一下吗?是配置问题吗?

创建一个特性分支:git flow feature start feature_branch.

完成一个特性分支:git flow feature finish feature_branch。按文档整理类似:git checkout developgit merge feature_branch

虽然我已经使用Git Flow分支策略多年了,但我承认我以前从未使用过git flow命令,但我刚刚测试了它们,可以确认您所看到的内容,尽管需要进行一些澄清。

据我所知,您从未被提示为任何合并提交写提交消息。然而,当您完成hotfixrelease分支时,提示您写入标记消息,它恰好也包含在合并提交消息的详细信息中(在提交标题下面),所以看起来像是您正在编写合并提交消息。因为只有发布版和热修复被标记,这就是为什么当你完成特性分支时不会提示你使用编辑器的原因。

关于--no-ff合并,有以下规则:

  1. 当完成释放修正补丁或分支,合并总是使用--no-ff标志执行。
  2. 完成功能时如果分支有2个或更多的新提交,则合并将使用--no-ff标志执行。
  3. 完成功能时分支只有一个新的提交,合并是执行--ff标志(这也是默认的合并)。

注意,在第三条规则中使用-ff意味着它会在可能的情况下做一个快进,这意味着有时会避免合并提交,这很有趣,因为我知道Git Flow文档中没有任何地方建议这样做。这确实是有意义的,因为当你只有一个提交要合并时,强制合并提交没有信息增益。它仍然忠于develop分支的--first-parent视图,显示所有已完成的特性分支。

注:当我个人使用Git Flow时,我总是强制合并提交,即使是单个提交合并,因为我在自定义的合并提交消息中添加了额外的PR信息。这是我不使用git flow命令的原因之一。(此外,我们的配置管理工具处理已完成的Pull Requests的合并,所以没有人会"完成";自己的东西。)

最新更新