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 によって更新プログラムで置き換えられたライブラリまたはその他のファイルを利用しようとしていたのだと思います。

/usr/libexec/git-core フォルダーから git.exe を手動で実行しようとしたところ、Windows から 0xC0000056 エラー コード (STATUS_DELETE_PENDING を意味する) が表示されました。これを Google で検索すると、再起動が必要であるという回答が得られました。

再起動後、git pull は正常に動作しました。

tl;dr OP のようなエラーが発生した場合は、git.exe を手動で実行して、発生したエラーの解決策を検索してみてください。

答え3

Perl がインストールされていますか? また、ウイルス対策ソフトは実行されていますか?

Perl をインストールし、ウイルス対策を一時的に無効にしてみてください。

答え4

この問題を解決する最も簡単な方法は、cygwin setup.exe経由でgitを再インストールすることです。

私も同じ問題を抱えていましたが、Cygwin セットアップ経由で git をインストールしていなかったため、パスと環境変数が接続されていませんでした。

セットアップ経由でインストールすると問題は解決しました。

関連情報