git状态无法找到diff-highlight

3

环境

  • Mac OSX 10.12.3
  • Git版本 2.11.1(通过Homebrew安装)

Git之前一直在工作,但今天当我在任何git目录中执行git status时,我收到了以下错误:

sh: /Users/xxx/.zsh/bin/diff-highlight: No such file or directory

我的$PATH是:

/Users/xxx/.composer/vendor/bin:/Documents/Ruby:/usr/texbin:/Users/xxx/.rbenv/shims:/Users/xxx/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/Library/TeX/texbin:/Users/xxx/.composer/vendor/bin:/Documents/Ruby:/usr/texbin:/Users/xxx/.rbenv/shims:/Users/xxx/.fzf/bin

我为什么会出现这个错误?

2个回答

3
安装/更新到最新版本的Git,通常使用适当的软件包管理工具(如HOMEBREW),可以解决与安装和缺失脚本/工具相关的问题。
由于某些原因,当我执行Git命令时,系统也无法找到diff-highlight。在进行双重检查时,我发现我已将diff-highlight设置为我的全局Git分页器,每当我尝试执行git子命令(状态/显示/日志)时,未找到的分页器就想要参与其中:
/ > git log
/usr/local/share/git-core/contrib/diff-highlight/diff-highlight | less -r: /usr/local/share/git-core/contrib/diff-highlight/diff-highlight: No such file or directory

安装 Git 后,通过 brew install gitbrew update git 再次安装,它会更新到最新版本(2.13.x),并且所有 Git 工具/文件都已重置到其正常位置。要获取 brew 安装脚本/工具和 Git 命令、文件的位置,可以输入以下命令:
/ > brew info git
git: stable 2.13.0 (bottled), HEAD
Distributed revision control system
https://git-scm.com
/usr/local/Cellar/git/2.13.0 (1,463 files, 33.2MB)

在我的~/dotfiles文件夹下,我存储了我的全局设置,其中包括Git的设置。我在~/dotfiles/git/gitconfig文件中更新了分页器设置,以正确的位置指向diff-highlight。
[core]
    excludesfile = /Users/<user_name>/.gitignore_global
    pager = /usr/local/Cellar/git/2.13.0/share/git-core/contrib/diff-highlight/diff-highlight | less -r

我正在使用 Jack's Dotfiles 的定制版本来进行全局设置。

1
现在是“brew upgrade git”了。复活奖! - kevincoleman
此外,pager = `brew --prefix git`/share/git-core/contrib/diff-highlight/diff-highlight | less 的使用将使其不受git版本的影响。 - gabe

1

我找到了问题所在。在我的 .zsh 目录中,我删除了子文件夹 /bin,其中包含 diff-highlight 可执行文件。把 /bin 放回去就解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接