Установка публичного репозитория

Предположим ваш персональный репозиторий находится в директории ~/proj. Сначала мы создадим клон репозитория и скажем демону git (git-daemon) что он предназначен быть публичным:

$ git clone --bare ~/proj proj.git
$ touch proj.git/git-daemon-export-ok

Результирующая директория proj.git содержит "пустой" репозиторий git-- это только содержимое директории ".git", без каких либо файлов.

Затем скопируем proj.git на сервер где вы планируете хостить публичный репозиторий. Вы можете использовать scp, rsync, или что нибудь более привычное или удобное.

Экспорт репозитория git через протокол git

Это наиболее предпочтительный способ.

Если кто либо администрирует сервер, то они должны сказать вам в какую директорию поместить репозиторий, и что появится URL git://.

Иначе, все что вам нужно сделать это запустить git daemon; он будет слушать порт 9418. По умолчанию, он разрешит доступ в любую директорию которая выглядит как репозиторий git и содержит волшебный файл git-daemon-export-ok. Передача путей директорий как аргументы в git-daemon ограничит экспорт до этих путей.

Вы также можете запустить git-daemon как сервис inetd; просмотрите документацию по git daemon чтобы получить больше подробностей. (Обратите особое внимание на секцию примеров.)

Экспорт репозитория git через http

Протокол git дает лучшую производительность и надежность, но на хосте с установленным вебсервером, экспорт http будет проще установить.

Все что вам нужно сделать это положить новый созданный пустой репозиторий git в директорию которая доступна вебсерверу, и скорректировать немного чтобы дать веб клиентам эктра информацию которая им нужна:

$ mv proj.git /home/you/public_html/proj.git
$ cd proj.git
$ git --bare update-server-info
$ chmod a+x hooks/post-update

(Для объяснения последних двух строк, просмотрите git update-server-info и githooks.)

Объявите URL proj.git. Потом любой может склонировать или вытянуть репозиторий, просто выполнив команду:

$ git clone http://yourserver.com/~you/proj.git


github logo