所以我正在使用GIT,试图将代码推送到我的远程服务器。
所以从我可以收集的内容来看,我基本上需要:
- 找到一种方法来在每次推送到服务器时包装我的环境变量
要么
- 在推送到服务器时指定我的git-receive-pack的路径
我知道我可以创建一个在我推动时生效的钩子,但是没有设法找到它的实现位置和方式。
(我宁愿不在我的本地机器上创建别名)
如果无法调整远程端的有效PATH1,那么你必须从你当地指定程序的位置。
如你所见, git clone
可以给 -u /path/to/git-upload-pack
(要么 --upload-pack /path/to/git-upload-pack
)。
git fetch
和 git pull
接受 --upload-pack /path/to/git-upload-pack
(不 -u
但是,因为它对这些程序意味着什么)。他们也检查了 remote.<name>.uploadpack
配置变量。
git push
接受 --receive-pack /path/to/git-receive-pack
并检查 remote.<name>.receivepack
配置变量。
克隆存储库后,可以使用配置变量记录路径:
git clone -u /home/bin/git-upload-pack user@server.com:mygitfolder
cd mygitfolder
git config remote.origin.uploadpack /home/bin/git-upload-pack
git config remote.origin.receivepack /home/bin/git-receive-pack
然后,您可以在不必指定路径的情况下进行推送,提取或拉取。
1
你说“SSH帐户的环境变量被阻止了”。如果你的意思是 sshd的 有它的 PermitUserEnvironment
设置已关闭(意味着您无法使用 environment="PATH=/home/bin:/usr/bin:/bin"
在你的 .ssh/authorized_keys
文件),那么你仍然可以通过shell初始化文件修改你的默认PATH(例如 .bashrc
)。
如果无法调整远程端的有效PATH1,那么你必须从你当地指定程序的位置。
如你所见, git clone
可以给 -u /path/to/git-upload-pack
(要么 --upload-pack /path/to/git-upload-pack
)。
git fetch
和 git pull
接受 --upload-pack /path/to/git-upload-pack
(不 -u
但是,因为它对这些程序意味着什么)。他们也检查了 remote.<name>.uploadpack
配置变量。
git push
接受 --receive-pack /path/to/git-receive-pack
并检查 remote.<name>.receivepack
配置变量。
克隆存储库后,可以使用配置变量记录路径:
git clone -u /home/bin/git-upload-pack user@server.com:mygitfolder
cd mygitfolder
git config remote.origin.uploadpack /home/bin/git-upload-pack
git config remote.origin.receivepack /home/bin/git-receive-pack
然后,您可以在不必指定路径的情况下进行推送,提取或拉取。
1
你说“SSH帐户的环境变量被阻止了”。如果你的意思是 sshd的 有它的 PermitUserEnvironment
设置已关闭(意味着您无法使用 environment="PATH=/home/bin:/usr/bin:/bin"
在你的 .ssh/authorized_keys
文件),那么你仍然可以通过shell初始化文件修改你的默认PATH(例如 .bashrc
)。