我想将我的git mergetool kdiff3更改为p4merge。因为我在使用kdiff3 mergetool的Windows系统上遇到错误。



所以我想将kdiff3更改为p4merge,在这里我也遇到了类似的错误



git - 错误: cannot overwrite multiple values with a single value-LMLPHP

我怎么解决这个问题? kdiff3或p4merge

最佳答案

您的kdiff3安装可能无法正常运行,因此可能已损坏。或者,也许您尝试手动编辑配置文件并弄乱了其内容。为什么?因为Windows可执行文件通常具有.exe扩展名。您可以尝试再次编辑配置。

无论如何,那不再重要了。如果您想尝试其他任何工具,则需要使用此工具。

git mergetool --tool=p4merge

您的git可能已经安装了其他文件。除了兼容的其他产品外,您还可以看到所有这些产品。
git mergetool --tool-help

编辑:
仅当您正确设置工具的路径时,此命令才有效。否则,您总是会得到No files need merging结果。您已经知道如何设置路径,但是我将在这里为其他可能需要的人提供帮助。

获取配置项列表:
git config -l

查看是否已经正确设置了值(如果有)。然后设置为正确的值或删除。
git config --unset mergetool.p4merge.path
git config --add mergetool.p4merge.path "c:/somewhere/p4merge.exe"

编辑:
我将提供清洁过程,因此,这些附加命令将有所帮助。

第一步是备份当前设置。最简单的方法是使用这些 list ,然后复制粘贴结果。
git config --list
git config --global --list

然后使用这些编辑命令,只需获取配置文件的路径并备份它们(vim显示路径)或保存到编辑器中的其他位置即可。
git config --edit
git config --global --edit

现在备份已准备就绪,只需退出编辑器即可。如果确实不需要,请不要尝试手动编辑。
git config --unset name
git config --global --unset name
git config --remove-section name
git config --global --remove-section name
merge.toolmergetool.namediff.tooldifftool.name是这里要清理的代码。当您再次列出配置时,您应该看不到这些名称。本地和全局应分别清洁。

然后退回我们刚刚清洁的那些东西。但这一次先在本地配置上尝试,然后再在全局上成功设置。
git config merge.tool name
git config mergetool.name.property value
git config diff.tool name
git config difftool.name.property value

此处property类似于cmdpath,而value是它们的值,您可以从备份中复制它们。现在,这里重要的是首先要一次set only 1 tool

关于路径的最后一件事。您(OP)似乎使用的是类似Linux的环境,因此使用/而不是\\将使pathcmd更好地理解。

09-04 01:11