我的.gitconfig
文件中有以下全局设置:
commit.verbose=true
我非常希望在编写提交消息时看到vim
中的文件编辑。使用git merge
时是否也可以使用此功能?
合并时的详细标记与提交详细标记的行为不同。
编辑:这里有一些屏幕截图来解释我在谈论的内容:
对我的develop
分支进行一些编辑并在vim中编写消息可能看起来像。如上所述,commit.verbose标志设置为true:
$ git commit -a
现在尝试将更改合并到另一个分支(即master)中会产生以下结果:
$ git checkout master && git merge -v --no-ff develop
我认为你在git docs上看到的详细选项,我在上面的命令中使用,并且在成功合并后与输出相关。在我的示例中,输出为:
Merge made by the 'recursive' strategy.
README | 2 ++
1 file changed, 2 insertions(+)
将详细程度提升到5级并不能解决我的问题:
$ GIT_MERGE_VERBOSITY=5 git merge -v --no-ff develop
Merging:
1b4c630 Initial commit
virtual develop
found 1 common ancestor:
1b4c630 Initial commit
Merge made by the 'recursive' strategy.
README | 2 ++
1 file changed, 2 insertions(+)
编辑:我的问题的最接近的答案可以在HERE列出的答案中找到,基本上,如果我在合并之前执行以下,我会得到整个差异
git diff <commit1> <commit2>
编辑2:另一种看待完全合并提交与提交消息相同的方法是首先合并分支,然后运行
git commit --amend
这使得可以将合并提交视为正常提交,至少在查看完整差异方面是这样。
答案 0 :(得分:2)
我认为您可能正在寻找merge.verbosity
:
<强> merge.verbosity 强>
控制递归合并策略显示的输出量。如果检测到冲突,则0级除了最终错误消息外不输出任何内容。级别1仅输出冲突,输出2个冲突和文件更改。 5级及以上输出调试信息。默认值为2级。可以被
GIT_MERGE_VERBOSITY
环境变量覆盖。
https://git-scm.com/docs/git-merge#git-merge-mergeverbosity
编辑:根据你的屏幕截图更新,我想我必须将我的答案改为:没有,因为我可以告诉你无法用vanilla Git做什么。即使fugitive(我强烈推荐BTW)也没有提供类似的东西。我注意到this possibly relevant question。
答案 1 :(得分:1)
有一种循环方式,步骤是:
git merge
#...您的选择git commit