ставим git и gitosis
Настройка git-сервера
Выполняем инициализацию gitosis-admin репозитория (на сервере):
$ sudo -H -u gitosis gitosis-init < /путь/к/файлу/id_rsa.pub
где id_rsa.pub - ваш публичный кюч.
В ответ будет выдано что-то вроде:
Initialized empty Git repository in /srv/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /srv/gitosis/repositories/gitosis-admin.git/
разрешаем выполнение post-update хука:
$ sudo chmod +x /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update
Клонируем конфиги gitosis на локальный компьютер
$ git clone gitosis@ваш_сервер:gitosis-admin.git
репозиторий в каталоге gitosis-admin, в котором в дирректории keydir лежат публичные ключи людей, которые имеют доступ к данному репозиторию.
В качестве имени файла используется его имя из открытого ключа. Что бы добавить человека нужно, просто, добавить его ключ.
файл gitosis.conf - настройка прав доступа для репозиториев
Добавляем ключи (юзеров) и редактируем конфиг на предмет прав и доступа.
затем коммитим изменения и закидываем их на сервер
$ git commit -am "grant new user ...."
$ git push origin master
Создаем и настраиваем новый репозиторий.
$ git clone gitosis@ваш_сервер:gitosis-admin.git
Редактируем gitosis.conf с добавленным репозиторием test-repo, в конфиг добавляем:
[group test-group]
writable = test-repo
members = логин1 логин2 ...
[repo test-repo]
description = Тестовый репозиторий
owner = имя
после правок делаем коммит:
$ git commit -am "Добавлен репозиторий test-repo"
и записываем изменения:
$ git push origin master
репозиторий готов и можно клонировать:
$ git clone gitosis@git.example.org:test-repo.git
да не забыть добавить хотя бы один файлик, иначе будет ругаться на ошибку.
В некоторых версиях git новые репозитории не создаются автоматически и при попытке клонировать выдается что-то вроде
fatal: 'repositories/имя-репо.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
В таком случае репозиторий надо создать принудительно. есть два варианта:
1. создавать прямо на удаленном сервере
Создаем нужный каталог и в нем инициируем git
mkdir /srv/gitosis/repositories/test-repo.git
cd /srv/gitosis/repositories/test-repo.git
git init
chown gitosis.gitosis /srv/gitosis/repositories/test-repo.git -R
2. сначала создать локально, а потом залить на сервер.
mkdir test-repo
cd test-repo
git init
git remote add origin gitosis@YOUR_SERVER_HOSTNAME:test-repo.git
добавим какой-нибудь файлик и закомметим его
git push origin master:refs/heads/master
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий