git-upload-pack: リモート Git リポジトリのクローン作成時にコマンドが見つかりません 質問する

git-upload-pack: リモート Git リポジトリのクローン作成時にコマンドが見つかりません 質問する

私はプロジェクトの 2 つのコピーを同期させるために git を使っています。1 つはローカル ボックス、もう 1 つはテスト サーバーです。これは、ssh を使用してリモート開発サーバーにログオンするときに発生する問題です。

git clone [email protected]:/home/chris/myproject
Initialized empty Git repository in /tmp/myproject/.git/
Password:
bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly
fetch-pack from '[email protected]:/home/chris/myproject' failed.

(犯人保護のためファイル名は変更されています...!)

どちらのボックスも Solaris 10 AMD を実行しています。 少し調べてみたところ、--upload-pack=$(which git-upload-pack)コマンドを追加する$PATHと機能することがわかりました (また、RTFM ソリューションに従って 'git-upload-pack' へのパスが含まれていることが証明されました)。しかし、これは本当に面倒です。さらに、'git push' は機能しません。オプションがないと思うからです--unpack=

ちなみに、すべての git コマンドはローカル ボックスから正常に動作します。これは、同じ NFS マウントにインストールされている同じバージョンのソフトウェア (1.5.4.2) です/usr/local/bin

誰か助けてくれませんか?

ベストアンサー1

git-upload-pack非ログイン シェルからのパスに があることを確認してください。(私のマシンでは にあります/usr/bin)。

ログインしていないシェルからリモート マシン上のパスがどのようになっているかを確認するには、次を試してください。

ssh you@remotemachine echo \$PATH

(これは Bash、Zsh、tcsh でも動作しますが、おそらく他のシェルでも動作します。)

返されるパスに があるディレクトリが含まれていない場合は、 (Bash の場合)、(Zsh の場合)、(tcsh の場合)、またはシェルの同等のgit-upload-packを設定して修正する必要があります。.bashrc.zshenv.cshrc

この変更はリモート マシンで行う必要があります。

リモートに追加する必要があるパスがわからない場合はPATH、次のコマンドで見つけることができます (リモート マシンでこれを実行する必要があります)。

which git-upload-pack

私のマシンでは が印刷されます/usr/bin/git-upload-pack。したがって、この場合、/usr/binがリモートの非ログイン シェルにあることを確認する必要があるパスですPATH

おすすめ記事