Чтобы изначально настроить любой сервер Git, вы должны экспортировать существующее хранилище в новое пустое хранилище - хранилище, которое не содержит рабочего каталога. Это обычно просто сделать. Чтобы клонировать ваш репозиторий и создать новый пустой репозиторий, вы запускаете команду клонирования с параметром --bare
. Как правило, пустые каталоги хранилища заканчиваются на .git
, например:
$ git clone --bare my_project my_project.git
Initialized empty Git repository in /opt/projects/my_project.git/
Эта команда сама берет Git-репозиторий без рабочего каталога и создает каталог специально для него.
Теперь, когда у вас есть чистая копия вашего репозитория, все, что вам нужно сделать, это поместить ее на сервер и настроить протоколы. Допустим, вы настроили сервер с именем git.example.com
, к которому у вас есть доступ SSH, и вы хотите хранить все свои репозитории Git в каталоге /opt/git
. Вы можете настроить свой новый репозиторий, скопировав свой пустой репозиторий:
$ scp -r my_project.git user@git.example.com:/opt/git
На этом этапе другие пользователи, которые имеют доступ по SSH к тому же серверу, который имеет доступ на чтение к каталогу /opt/git
, могут клонировать ваш репозиторий, запустив
$ git clone user@git.example.com:/opt/git/my_project.git
Если пользователь SSH подключается к серверу и имеет доступ на запись в каталог /opt/git/my_project.git
, он также автоматически получит принудительный доступ. Git автоматически добавит права на групповую запись в репозиторий, если вы запустите команду git init с опцией --shared
.
$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared
Очень легко взять Git-репозиторий, создать пустую версию и поместить ее на сервер, к которому у вас и ваших сотрудников есть доступ по SSH. Теперь вы готовы сотрудничать в одном проекте.