如何使用Git的`difftool`来合并冲突?

41
在合并过程中出现冲突后,可以使用git diff列出这些冲突,但是使用配置中设置的git difftool(在我这里是Kaleidoscope)无法显示它们。相反,它只会使用普通的diff。
使用git difftool与之前的提交进行比较是有效的。
有没有办法在合并冲突时使用git difftool呢?

我曾经有过完全相同的经历,但是使用的是Meld而不是Kaleidoscope。git meldtool可以工作,但是当需要解决合并冲突时,git difftool会回退到git diff,尽管在没有合并冲突需要解决时它通常可以正常工作。我觉得这很奇怪。 - Mark Mikofski
2个回答

43

尝试使用git mergetool


2
Mergetool将启动一个可视化合并尝试,例如另一个应用程序,我只想要两个冲突文件的差异,问题是虽然git difftool refA refB通常有效,但在这种情况下git diffgit diftool将执行相同的操作。 - j-pb

2

首先尝试:

git difftool -t <yourtool>

如果这样不行,看一下man git-difftool,检查支持的工具列表。检查是否有一个工具可以满足您的需求,如果可以,则说明问题是git不支持Kaleidoscope,可能需要进行其他配置调整。

1
我已经配置好了,git difftool refA refB 运行良好。我想做的是在合并失败时使用 difftool 显示冲突文件中的差异,此时 git diff defaults 可以正常工作,但是使用 difftool 却和 diff 一样,没有启动 kaleidoscope,只是使用了 diff。 - j-pb
1
在这种情况下,我会同意3lectrologos的看法。我通常使用git mergetool来完成这个任务。 - Andrew
1
从支持网站上看还有点难以确定,但我认为Kaleidoscope目前还没有mergetool支持,只有difftool。 - Ryan McCuaig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接