找不到git-receive-pack

时间:2013-03-24 02:23:34

标签: macos git

我正在尝试在运行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,并且已安装在客户端和主机上的路径中。

我该怎么做才能解决问题或解决问题?

1 个答案:

答案 0 :(得分:5)

阅读this post帮助我弄清楚如何解决问题。因为该主题假设我没有背景知识(以及其他新手可能没有),所以我总结并尝试简化这里的答案。

Git push显然通过“非登录”帐户工作,即没有密码的帐户。见here。非登录git帐户的路径变量与普通登录​​帐户的路径不同。即使您登录到远程计算机,键入echo $ PATH仍将仅显示您的路径,非登录帐户的路径。要查看非登录帐户的路径,您必须键入(从客户端):

  

ssh you @ remotemachine echo \ $ PATH

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

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