Cygwin git pull не является командой

Cygwin git pull не является командой

Внезапно 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 не были подключены.

Установка через программу установки решила проблему.

Связанный контент