合并后,我想使用git mergetool来解决问题,但它失败了我指定的任何工具:
git mergetool merge tool candidates: opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse ecmerge p4merge araxis bc3 vimdiff emerge Merging: main.c Normal merge conflict for 'main.c': {local}: modified file {remote}: modified file Hit return to start merge resolution tool (kdiff3): merge of main.c failed
我指定的工具似乎根本没有启动。
输出
git config --list
merge.tool=kdiff3 core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true
答案 0 :(得分:5)
kdiff3
。如果是,请检查您的PATH
变量是否可用
尝试
git config --global merge.tool <your_merge_program>
此外,您可以指定操作系统和可用的合并程序
答案 1 :(得分:1)
请注意,git 2.10将提供更好的退出状态,以识别差异/合并工具安装问题。
commit 45a4f5d见John Keeping (johnkeeping
)(2016年8月15日)
(由Junio C Hamano -- gitster
--合并于commit 331f06d,2016年8月19日)
difftool
:始终遵守致命错误退出代码目前,difftool的“信任退出代码”逻辑总是抑制 我们调用的diff实用程序的退出状态 这很有用,因为我们不想因为文件不同而因为diff返回“1”而退出,但如果shell因为找不到所选的diff实用程序而返回错误,则会让人感到困惑。
POSIX指定
- 127作为“
command not found
”的退出状态,- 126代表“
command found but is not executable
”和- values greater than 128 if the command terminated because it received a signal
至少bash和dash遵循此规范,而diff实用程序通常使用“
1
”作为我们想要忽略的退出状态。处理126或更高的任何值作为表示该值的特殊值 发生了某种形式的致命错误。