Нет, вы правы, когда говорите, что можете обслуживать git-репозиторий без установленного git на вашем сервере.Это потому, что все, что нужно для обслуживания git-репозитория, «хранится» в каталоге .git
.
Но для связи с сервером (например, выполните clone
, push
и т. Д....), в зависимости от вашего адреса хранилища (refspec
) будет использоваться определенный транспорт.И если вы используете транспорт ssh
или git
, на стороне сервера также должен быть установлен git.Потому что, как вы сказали, он «упаковывает» все данные, которыми обмениваются, в более эффективный формат.
Вы можете обойти это, смонтировав удаленный сервер в вашей файловой системе и используя транспорт «file».Или вы можете загрузить свои собственные «альтернативы» для git и использовать вместо этого:
git clone -u /home/you/bin/git-upload-pack you@machine:code
(из: git-upload-pack: команда не найдена, как исправить это правильно )