我正在尝试在运行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,并且已安装在客户端和主机上的路径中。
我该怎么做才能解决问题或解决问题?
答案 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,可以将正确的路径添加到远程计算机上的非登录帐户的默认路径中。 “
希望这可以帮助其他人解决这个问题。