Подтвердить что ты не робот

GIT: "git -upload-pack: команда не найдена" при нажатии на удаленный сервер

Итак, я использую GIT, пытаясь вытащить код на мой удаленный сервер.

  • на общем хостинге unix, и мне не разрешено иметь свои собственные переменные среды (заблокированные для учетных записей SSH) и без доступа к sudo.
  • удалось установить git успешно в моем /home/
  • попытка вывести код на сервер возвращает: bash: git -upload-pack: команда не найдена Переменная
  • $PATH установлена ​​- поскольку git установлен в моем /home/
  • чтобы заставить все работать, мне пришлось использовать следующую команду clone: ​​

    git clone -u/home/bin/ git -upload-pack [email protected]: mygitfolder

  • те же версии git на локальном компьютере/удаленном сервере (1.7.0.4)

поэтому из того, что я могу собрать, мне нужно в основном:

  • найти способ обматывать мою переменную окружения каждый раз, когда я нажимаю на сервер или
  • укажите путь к файлу git -receive-pack при нажатии на сервер

Я понимаю, что могу создать крючок, который будет действовать, когда я нажимаю, но не смог найти, где/как это реализовано.

(я бы предпочел не создавать псевдоним на моей локальной машине)

4b9b3361

Ответ 1

Если вы не можете настроить эффективную 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 [email protected]: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).