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 он становится полностью рабочим хранилищем, которое можно добавить в качестве удаленного на любой другой компьютер.

Другие вопросы по тегам