我想将我的git mergetool kdiff3更改为p4merge。因为我在使用kdiff3 mergetool的Windows系统上出错了。
/ mingw32 / libexec / git-core / git-mergetool - lib:第128行:C:\ Program Files \ KDiff3 \ kdiff3:无法执行二进制文件:exec格式错误 application / config / constants.php似乎没有变化。
所以我想改为kdiff3到p4merge,这里我也得到一个像
这样的错误警告:merge.tool有多个值错误:无法覆盖 具有单个值的多个值 使用正则表达式, - add或--replace-all来更改merge.tool。
我该如何解决这个问题? kdiff3或p4merge
答案 0 :(得分:4)
您的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"
编辑: 我将提供一个清洁过程,这些附加命令将有所帮助。
第一步是备份当前设置。最简单的方法是使用这些列表,然后复制粘贴结果。
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.tool
,mergetool.name
,diff.tool
和difftool.name
是清洁的。再次列出配置时,您不应该看到这些名称。本地和全球应单独清理。
然后将我们刚刚清理过的那些放回去。但这次首先尝试使用本地配置,然后在全局设置成功。
git config merge.tool name
git config mergetool.name.property value
git config diff.tool name
git config difftool.name.property value
此处property
类似于cmd
和path
,value
是您可以从备份中复制的值。现在重要的是一开始就set only 1 tool
。
关于路径的最后一件事。您(OP)似乎使用类似Linux的环境,因此使用/
代替\\
会使path
和cmd
更易于理解。