-
Notifications
You must be signed in to change notification settings - Fork 7
Gitosis
Тестировалось под Ubuntu 10.04.2 LTS.
Пусть адрес нашего сервера, где мы хотим хостить git-репозитории, будет таким: git.ruware.com
. Клиент в данной инструкции - это компьютер пользователя, который будет работать с репозиториями, синхронизируясь через сервер. Клиентов может быть множество. Среди клиентов выделяется тот, который может работать с git-репозиторием самого Gitosis, назовем его для простоты клиент-администратор. Действия, которые в данной инструкции помечены как "Действие на клиенте", должно быть выполнено на каждом из клиентов, кроме тех действий, о которых оговорено особо, что они должны быть выполнены только на клиенте-администраторе.
- Действие на сервере: Устанавливаем Gitosis из пакетов:
sudo aptitude update
sudo aptitude install python-setuptools
sudo aptitude install gitosis
-
Действие на клиенте: убедимся, что у пользователя операционной системы, есть ssh-ключ. Если нет, то сгенерим: http://help.github.com/linux-key-setup/. Копируем публичный ключ на сервер, пусть он после копирования лежит на сервере здесь:
/tmp/id_rsa.pub
-
Действие на сервере:
sudo -H -u gitosis gitosis-init < /tmp/id_rsa.pub
Эта команда, проинициализирует репозиторий управления проектами и импортирует ключ наш ключ клиента-администратора -
Действие на клиенте: убедимся, что Gitosis работает правильно:
ssh gitosis@git.ruware.com
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to git.ruware.com closed.</code>
- Действие только на клиенте-администраторе: клонируем git-репозиторий Gitosis, для управления проектами:
mkdir gitosis-admin
git clone gitosis@git.ruware.com:gitosis-admin.git
$ cd gitosis-admin
- Действие только на клиенте-администраторе: добавляем проект Notes:
vim gitosis.conf
[group writers]
writable = Notes
members = your_email@example.com
- Действие только на клиенте-администраторе: записываем изменения в конфигурации обратно на сервер:
git commit -am 'add project Notes and group writers'
git push
Теперь, администратор может создать репозиторий Notes сначала у себя локально, а затем объявить удаленный репозиторий origin на сервере и Gitosis создаст его.
- Создадим проект локально:
mkdir ~/Notes
cd ~/Notes
git init
touch Readme
git add Readme
git commit -am "Initial commit"
-
Зарегистрируем адрес удаленного репозитория:
git remote add origin gitosis@git.host.com:Notes.git
-
Отправляем изменения в локальном репозитории в удаленный:
git push -u origin master
На данном этапе, администратор может создавать репозитории, управлять доступом других пользователей к ним, создавать группы пользователей.
Для того, чтобы другой пользователь мог осуществлять клонирование репозиториев и внесение изменений в них, нужно добавить его ключ в админ-репозиторий Gitosis. Об этом подробно написано по ссылкам:
Footer is under construction
Sidebar is under construction