场景
- 我可以访问这个不再接收任何类型更新的旧 linux 服务器。只有打破和修复。服务器上没有安装 git,所以我在本地用户的 ~/opt/bin 上安装了它。我将目录添加到我的路径中,并且为了在服务器上进行开发,我几乎可以用 git 做所有我需要做的事情。
- 我决定在我的工作站上进行开发并推送到准备好的生产代码会很酷。
- 我在我的服务器上设置了一个裸存储库,创建了一个带有 checkout -f 到我的 GIT_WORK_TREE 的 post-receive 文件,似乎一切都相应地设置了。
问题
当我尝试推送我的主分支时,我收到以下错误:
sh: git-receive-pack: command not found
fatal: The remote end hung up unexpectedly
我知道为什么会这样。我的 SSH 上的 $PATH 只看到/usr/bin:/bin:/usr/sbin:/sbin
我的用户是使用 /bin/sh shell 设置的,因此不能使用 .profile/.bashrc/.bashprofile 。
我也不能使用 .ssh/environment,因为我PermitUserEnvironment
的设置为 no。
我试图创建一个钩子/预接收并在那里设置路径,但这也不起作用。
关于如何让 SSH 看到 git 并让它工作的任何想法?
谢谢