3

我正在尝试在运行 osx 10.8.2 的 mac mini 上设置远程 git 服务器。我已经设置了 ssh,以便客户端可以连接到远程主机上的 git 帐户。当我尝试从一个客户端执行 git push origin master 时,出现以下错误:

bash:git-receive-pack:找不到命令

致命:无法从远程存储库中读取。

(我从另一个客户那里得到:

bash:git-upload-pack:找不到命令

和致命错误。

我已确保已安装 git receive pack 和 git upload pack 并在客户端和主机的路径中。

我可以做些什么来修复或解决问题?

4

1 回答 1

5

通读这篇文章帮助我弄清楚了如何解决这个问题。因为该线程假设了我没有的背景知识(以及其他新手可能没有的),所以我在这里总结并尝试简化答案。

Git push 显然是通过“非登录”帐户工作的,即没有密码的帐户。见这里。非登录 git 帐户的路径变量与普通登录​​帐户的路径不同。即使您登录到远程机器,输入 echo $PATH 仍然只会显示您的路径,而不是非登录帐户的路径。要查看非登录帐户的路径,您必须输入(来自客户端):

ssh you@remotemachine echo \$PATH

(反斜杠可以防止本地机器在 $PATH 变量到达远程机器之前拦截和扩展它。)这样做会返回非登录帐户的路径。就我而言,非登录帐户的默认路径不包括相关 git 文件的路径。一旦我添加了 git-upload &c 的路径,一切正常。正确的路径可以添加到远程计算机上非登录帐户的默认路径中,方法是“将其设置为 .bashrc(对于 Bash)、.zshenv(对于 Zsh)、.cshrc(对于 tcsh)或您的 shell 的等效项。 "

希望这可以帮助其他人解决这个问题。

于 2013-03-27T03:33:37.490 回答