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
命令,但我只是测试了它们并且可以确认你的意思正在见证,但需要进行一些澄清。
据我所知,您不会被提示为任何合并提交编写提交消息。但是,当您完成 hotfix
或 release
分支时, 系统会提示您编写 标记消息 ,这会发生也包含在合并提交消息详细信息中(在提交标题下方),因此看起来您正在编写合并提交消息。由于仅标记版本和修补程序,这就是为什么在完成功能分支时不会提示您使用编辑器的原因。
关于 --no-ff
合并,制定了以下规则:
- 完成 release 或 hotfix 分支时,总是使用
--no-ff
标志执行合并。
- 完成具有 2 个或更多新提交的 feature 分支时,将使用
--no-ff
标志执行合并。
- 当完成一个 feature 分支恰好有 1 个新提交时,合并是使用
--ff
标志执行的(这也是合并的默认值)。
请注意,在第三条规则中使用 -ff
意味着它会尽可能执行 fast-forward,这意味着有时会避免合并提交,这很有趣,因为据我所知,这在任何地方都不建议Git 流文档。这确实有意义,因为当您只有一个提交要合并时,强制合并提交不会获得任何信息。它仍然适用于显示所有已完成的 develop
分支的 --first-parent
视图特色分支。
旁注: 当我个人使用 Git Flow 时,我总是强制合并提交,即使是对于单个提交合并,因为我在自定义中添加了额外的 PR 信息合并提交消息。这是我不使用 git flow
命令的原因之一。 (此外,我们的 SCM 工具无论如何都会处理已完成的 Pull Request 的合并,因此没有人会自己“完成”任何事情。)
我在 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
命令,但我只是测试了它们并且可以确认你的意思正在见证,但需要进行一些澄清。
据我所知,您不会被提示为任何合并提交编写提交消息。但是,当您完成 hotfix
或 release
分支时, 系统会提示您编写 标记消息 ,这会发生也包含在合并提交消息详细信息中(在提交标题下方),因此看起来您正在编写合并提交消息。由于仅标记版本和修补程序,这就是为什么在完成功能分支时不会提示您使用编辑器的原因。
关于 --no-ff
合并,制定了以下规则:
- 完成 release 或 hotfix 分支时,总是使用
--no-ff
标志执行合并。 - 完成具有 2 个或更多新提交的 feature 分支时,将使用
--no-ff
标志执行合并。 - 当完成一个 feature 分支恰好有 1 个新提交时,合并是使用
--ff
标志执行的(这也是合并的默认值)。
请注意,在第三条规则中使用 -ff
意味着它会尽可能执行 fast-forward,这意味着有时会避免合并提交,这很有趣,因为据我所知,这在任何地方都不建议Git 流文档。这确实有意义,因为当您只有一个提交要合并时,强制合并提交不会获得任何信息。它仍然适用于显示所有已完成的 develop
分支的 --first-parent
视图特色分支。
旁注: 当我个人使用 Git Flow 时,我总是强制合并提交,即使是对于单个提交合并,因为我在自定义中添加了额外的 PR 信息合并提交消息。这是我不使用 git flow
命令的原因之一。 (此外,我们的 SCM 工具无论如何都会处理已完成的 Pull Request 的合并,因此没有人会自己“完成”任何事情。)