Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么git difftool返回;无法运行git difftool--helper";错误?_Git_Git Difftool - Fatal编程技术网

为什么git difftool返回;无法运行git difftool--helper";错误?

为什么git difftool返回;无法运行git difftool--helper";错误?,git,git-difftool,Git,Git Difftool,git difftool停止工作,我不知道为什么 # git difftool --tool=vimdiff error: cannot run git-difftool--helper: No such file or directory fatal: external diff died, stopping at ... vimdiff安装在/bin/vimdiff上,工作正常 # vimdiff --version VIM - Vi IMproved 7.4 (2013 Aug 10,

git difftool停止工作,我不知道为什么

# git difftool --tool=vimdiff
error: cannot run git-difftool--helper: No such file or directory
fatal: external diff died, stopping at  ...
vimdiff
安装在
/bin/vimdiff
上,工作正常

# vimdiff --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug  9 2019 03:17:15)
  • --工具
    更换为
    vimdiff
    以外的工具时,也会出现同样的问题
  • 它发生在这台机器上的任何回购协议上,因此这不是回购协议特有的问题
  • 试图通过
    yum重新安装git222 core.x86\u 64
    重新安装git。重新安装成功,但问题仍然存在
  • git difftool
    过去在同一台机器上工作,所以我猜是机器的配置发生了变化,导致了这种情况
  • 其他git命令(status、diff、commit、push等)工作正常。问题似乎仅限于git difftool
git版本为2.22.3,在CentOS Linux 7.7.1908版(核心版)上运行


知道什么地方可能出错以及如何进一步调试吗?

多亏@phd comment,我发现文件
/usr/lib/git core/git difftool--helper
丢失了。
可能在git包本身中丢失了,因为重新安装git并不能解决这个问题

所以我从git repo下载了它(与我的git版本相同的标签):

将它移动(并重命名)到
/usr/lib/git core/git difftool--helper
,chmod a+x,现在它可以工作了


更新1 就


更新2 根据在ius上维护git222的@carlwgeorge,git difftool--helper是
git222
的一部分,而不是
git222核心的一部分

这可以通过以下方式进行验证:

# repoquery -q --whatprovides /usr/libexec/git-core/git-difftool--helper
git-0:1.8.3.1-23.el7_8.x86_64
git-0:1.8.3.1-21.el7_7.x86_64
git-0:1.8.3.1-22.el7_8.x86_64
git222-0:2.22.2-1.el7.ius.x86_64
git224-0:2.24.3-1.el7.ius.x86_64
git222-0:2.22.3-1.el7.ius.x86_64
git224-0:2.24.2-1.el7.ius.x86_64
git222-0:2.22.4-1.el7.ius.x86_64
运行
yum安装git222
后,git difftool--helper被还原:

# rpm -q --whatprovides /usr/libexec/git-core/git-difftool--helper
git222-2.22.4-1.el7.ius.x86_64
这辆车是从火车上叉下来的。它遵循相同的布局,在git222核心包中有一组最小的功能,其余的功能(及其所有依赖项)在git222主包中。这在git222的生命周期中没有改变,因此最有可能的情况是有人认为他们只需要git222内核,因此卸载了git222。要恢复该功能,请再次安装git222

yum install git222

locate-b\\git difftool--helper
?@phd-它确实不见了!我希望它在
/usr/libexec/gitcore/
上,但它不在那里(其他文件在那里)。卸载和重新安装git并没有使它恢复。对我来说,它在
/usr/lib/git core/git difftool--helper中。这样得到它怎么样:在有趣的中找到。可能值得向为CentOS维护此软件包存档的人报告。@torek这将是repo而不是CentOS repo,因为我需要更新的git版本。CentOS发行git 1.8.5。@AmirGonnen感谢您为此发行GitHub,我不经常查看此网站。我在这里和GitHub问题上都做了回答。
yum install git222