Если вы не можете отрегулировать эффективный PATH на удаленной стороне 1 , то вам придется указать расположение программ с вашей локальной стороны.
Как вы обнаружили, 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
), то вы все равно сможете изменить PATH по умолчанию черезфайл инициализации оболочки (например, .bashrc
).