3

osx10.8.2を実行しているmacminiにリモートgitサーバーをセットアップしようとしています。クライアントがリモートホストのgitアカウントに接続できるようにsshを設定しました。1つのクライアントからgitpushorigin masterを実行しようとすると、次のエラーが発生します。

bash:git-receive-pack:コマンドが見つかりません

致命的:リモートリポジトリから読み取ることができませんでした。

(私が得る別のクライアントから:

bash:git-upload-pack:コマンドが見つかりません

そして致命的なエラー。

gitreceivepackとgituploadpackがインストールされ、クライアントとホストの両方のパスにあることを確認しました。

問題を修正またはトラブルシューティングするにはどうすればよいですか?

4

1 に答える 1

5

この投稿を読んで、問題を解決する方法を理解することができました。このスレッドは、私が持っていなかった (および他の初心者が持っていない可能性がある) 背景知識を前提としているため、ここで答えを要約して単純化しようとします。

Git プッシュは、「ログインしていない」アカウント、つまりパスワードを持たないアカウントを介して動作するようです。ここを参照してください。非ログイン git アカウントのパス変数は、通常のログイン アカウントのパスとは異なります。リモート マシンにログインした場合でも、echo $PATH と入力すると、ログインしていないアカウントのパスではなく、パスのみが表示されます。非ログイン アカウントのパスを確認するには、(クライアントから) 次のように入力する必要があります。

ssh you@remotemachine echo \$PATH

(バックスラッシュは、リモート マシンに到達する前に、ローカル マシンが $PATH 変数を傍受して展開するのを防ぎます。) そうすることで、ログインしていないアカウントのパスが返されます。私の場合、非ログイン アカウントのデフォルト パスには、関連する git ファイルへのパスが含まれていませんでした。git-upload &c へのパスを追加すると、すべてが正常に機能しました。.bashrc (Bash の場合)、.zshenv (Zsh の場合)、.cshrc (tcsh の場合)、またはシェルの同等のパスに設定することで、リモート マシンの非ログイン アカウントのデフォルト パスに正しいパスを追加できます。 "

これがこの問題を抱えている他の人に役立つことを願っています。

于 2013-03-27T03:33:37.490 に答える