1. ホーム
  2. git

[解決済み] git-upload-pack: リモート Git リポジトリのクローンを作成する際にコマンドが見つからない

2022-04-21 10:17:35

質問

私はgitを使用して、プロジェクトの2つのコピーを同期させています。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.

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

2台ともSolaris 10 AMDが動作しています。少し調べてみたのですが、もし私が --upload-pack=$(which git-upload-pack) を実行すると、コマンドは動作します(そして $PATH には 'git-upload-pack' へのパスが含まれていますが、これは本当に迷惑な話です。 --unpack= オプションで指定します。

ちなみに、私のローカルマシンでは、すべての git コマンドが問題なく動作しています。 /usr/local/bin .

誰か助けてください。

解決方法は?

確認する git-upload-pack は、非ログインシェルからのパス上にあります。(私のマシンでは /usr/bin ).

非ログインシェルからリモートマシン上でパスがどのように見えるかを確認するには、次のようにします。

ssh you@remotemachine echo \$PATH

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

もし、返されたパスの中に git-upload-pack に設定することで修正する必要があります。 .bashrc (Bashの場合)です。 .zshenv (Zshの場合)です。 .cshrc (tcshの場合)または同等のシェルを使用します。

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

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

which git-upload-pack

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