
Внезапно 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.
решение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 заменила обновлением.
Я попробовал запустить git.exe вручную из папки /usr/libexec/git-core и получил код ошибки 0xC0000056 от Windows, что означает STATUS_DELETE_PENDING. Поиск в Google дал мне ответ, что нужна перезагрузка.
После перезагрузки git pull отработал корректно.
tl;dr если вы столкнулись с ошибкой, подобной той, что возникла у OP, попробуйте запустить git.exe вручную и поискать решение для возникшей ошибки.
решение3
Установлен ли у вас Perl и работает ли антивирус?
Попробуйте установить Perl и временно отключить антивирус.
решение4
Самый простой способ исправить эту проблему — переустановить git через cygwin setup.exe.
У меня была та же проблема, и я не установил git через установку Cygwin, поэтому пути и переменные env не были подключены.
Установка через программу установки решила проблему.