git-receive-pack未找到

3
我正在尝试在运行OSX 10.8.2的Mac mini上设置远程git服务器。我已经设置了SSH,以便客户端可以连接到远程主机上的git帐户。当我尝试从一个客户端执行“git push origin master”时,我收到以下错误信息:
bash: git-receive-pack: command not found fatal: Could not read from remote repository.
(从另一个客户端我得到:
bash: git-upload-pack: command not found
并且致命错误。)
我确保git receive pack和git upload pack已安装并在客户端和主机上处于路径中。
我该怎么做才能解决或排除问题?
1个回答

5
阅读这篇文章帮助我解决了这个问题。由于该文假定了我没有的背景知识(其他初学者也可能没有),因此在这里我进行了总结并尝试简化答案。
Git push 显然通过一个“非登录”账户工作,即不需要密码的账户。可以在这里找到相关信息。非登录 git 账户的路径变量与普通登录账户的路径是不同的。即使你登录到远程机器上,键入 echo $PATH 仍然只会显示 你自己的路径,而不是非登录账户的路径。要查看非登录账户路径,必须从客户端输入以下命令:

ssh you@remotemachine echo \$PATH

(反斜杠可以防止本地机器在将 $PATH 变量传递到远程机器之前截获和扩展它。)执行后返回了非登录账户的路径。在我的情况下,默认的非登录账户路径没有包含相关的 git 文件路径。一旦我添加了 git-upload 等文件的路径,一切就正常了。可以通过“在 .bashrc(对于 Bash)、.zshenv(对于 Zsh)、.cshrc(对于 tcsh)或适用于你的 shell 的等效文件中设置它”将正确的路径添加到远程机器上的非登录账户的默认路径。

希望这能帮助其他遇到这个问题的人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接