git:没有可用的合并工具

git:没有可用的合并工具,git,mergetool,Git,Mergetool,我打算将winmerge与GitHubDesktop一起设置为我的合并工具。在实现之前,出于好奇,我尝试运行git mergetool——工具帮助。我得到“以下工具是有效的,但当前不可用。”参考git文档(),我理解,在这一点上,合并后不会发生任何冲突解决。我说得对吗 谢谢您需要配置git以查找合适的工具: git config --global merge.tool winmerge 如果应用程序无法自动定位,则可能需要指定二进制文件的确切路径 git config --global mer

我打算将winmerge与GitHubDesktop一起设置为我的合并工具。在实现之前,出于好奇,我尝试运行git mergetool——工具帮助。我得到“以下工具是有效的,但当前不可用。”参考git文档(),我理解,在这一点上,合并后不会发生任何冲突解决。我说得对吗


谢谢

您需要配置git以查找合适的工具:

git config --global merge.tool winmerge
如果应用程序无法自动定位,则可能需要指定二进制文件的确切路径

git config --global mergetool.winmerge.path C:/Program\ Files/Winmerge/path/to/binary.exe

然后重试。

关于我认为没有(正确)答案的问题:

参考git文档(),我了解到,在这一点上,合并后不会发生任何冲突解决。我说得对吗

git不会尝试使用mergetools自动解决冲突,这些工具只是手动(但使用GUI)解决git无法解决的冲突

因此,即使您没有配置winmerge,当您执行
git merge
时,git也会尝试使用其内部冲突解决算法来解决冲突。 如果要合并的版本之间的差异在不同的文件中或在同一文件的不同块中,git解决它们,否则git将冲突区域标记为>


合并工具只是为您提供了一种方法,告诉您如何解决这些剩余冲突。

也许我需要澄清我的问题。我只是好奇在我尝试安装和配置winmerge之前发生了什么。我的理解是,现在,由于没有可用的合并工具,将不会有冲突解决。因此GitHubDesktop将宣布冲突,但不会尝试解决冲突。正确,这就好像您在不采取任何操作的情况下关闭了合并工具一样。这些文件仍将具有检测到冲突的
git标记。我认为所选答案(Matt Clark)与您的问题无关。如果我错了,请纠正我,但是您询问git是否能够自动解决冲突,即使您没有配置mergetool。MergeTool不负责自动解决冲突。。。事实上,这是git内部处理的部分。当您调用
git merge
时,自动解决方案工作就完成了。如果它不能解决所有冲突,git会要求用户手动干预,可以通过简单的编辑器或合并工具来完成。我不会说前面的答案是错误的,但你的答案肯定非常清楚和准确。谢谢你。很高兴它帮助了你。。。如果您对此表示感谢,那么当您获得更高的声誉时(我认为现在您无法做到这一点),请记住这一点,然后回来单击我答案的向上箭头,给我一分;-)