突然,git pull 在 cygwin 上停止工作。它给了我这个递归错误消息。
git: 'pull' is not a git command. See 'git --help'.
Did you mean this?
pull
我可以执行 git status 和其他 git 命令,但出于某种原因,pull 无法工作。在此之前,它已经工作了很长时间。重启后我遇到了这个问题。我尝试过彻底修复并完全重新安装 cygwin,但仍然遇到同样的问题。我的路径似乎没问题。
$ type -a git
git is /usr/bin/git
git is /bin/git
更多信息:git 命令的可执行文件似乎位于 /usr/lib/git-core 下,而 git-pull 是一个没有扩展名和 !/bin/sh 标头的 shell 脚本。
答案1
您可以你的 cygwin 路径中缺少一个目录。
将以下行添加到您的 ~/.bashrc:
export GIT_EXEC_PATH=/opt/local/libexec/git-core
$PATH=/opt/local/libexec/git-core:$PATH
export PATH
答案2
出现此问题的原因是 Windows Update 已安装更新,并且需要重新启动。我认为 git pull 试图利用 Windows 已通过更新替换的某个库或其他文件。
我尝试从 /usr/libexec/git-core 文件夹手动运行 git.exe,并从 Windows 收到 0xC0000056 错误代码,这意味着 STATUS_DELETE_PENDING。谷歌搜索后,我的答案是需要重新启动。
重启后,git pull正常工作。
tl;dr 如果您遇到类似 OP 的错误,请尝试手动运行 git.exe 并搜索导致错误的解决方案。
答案3
您是否安装了 Perl,并且运行了防病毒软件?
尝试安装 Perl 并暂时禁用防病毒软件。
答案4
解决此问题的最简单方法是通过 cygwin setup.exe 重新安装 git
我遇到了同样的问题,并且没有通过 cygwin 设置安装 git,因此路径和环境变量没有连接。
通过安装程序安装它解决了问题。