Git должен присутствовать на сервере, чтобы использовать его?
Когда я начал работать с git, одним из самых заметных преимуществ, которые мне сказали мои коллеги, было то, что git не обязательно должен присутствовать на сервере, отличном от svn.
Но так ли это на самом деле? В другой ветке я читал, что хотя бы git-upload-pack
или же git-receive-pack
будет необходимо.
С другой стороны, я могу смело хранить git-репозиторий на USB-флешке.
Итак, на сервере должно быть установлено какое-либо программное обеспечение, кроме ssh или нет?
2 ответа
Нет, вы правы, когда говорите, что можете использовать 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: команда не найдена, как это исправить правильно)
Каждый репозиторий git действует как сервер.
Как только вы делаете git clone
он становится полностью рабочим хранилищем, которое можно добавить в качестве удаленного на любой другой компьютер.