19.04.2011 14:44
DEViANCE — Расшаривание git-репозитория через ssh
Понадобилось расшарить git-репозиторий нескольким разработчикам. Первое, что пришло в голову - gitosis. Поставил, так и не смог допилить для своих нужд. Мне gitosis показался монстрообразным и не удобным. Решил пойти другим путем: создать пользователя git, сделать для него свое окружение в котором и будет доступен репозиторий. Для этого понадобилось: lshell и 10 минут на настройку и тестирование.Для начала нужно установить lshell. Для Debian-based систем:
1 |
|
Далее нужно добавить пользователя. У меня это пользователь git.
1 |
|
Установим пароль для нашего пользователя:
1 |
|
Настраиваем lshell под свои нужды, например, можно запретить выполнение каких-то команд по ssh, указать дополнительные директории, в которые разрешен доступ и т.д.
1 |
|
Так же в конце этого файла добавляем:
1 |
<git> # Имя созданного пользователя
|
На этом настройка окончена. Можно залогиниться под созданным пользователем и проверить настройки окружения:
1 |
|
Работа с репозиторием
Создаем пустой удаленный репозиторий в директории созданного пользователя:
1 |
|
Переходим в наш локальный репозиторий и добавляем адрес удаленного репозитория:
1 |
git remote add origin [email protected]:project.git
|
Затем копируем локальный репозиторий в удаленный:
1 |
|
Клонирование репозитория на другой машине:
1 |
git clone [email protected]:project.git
|
На этом всё! Буду рад любым замечаниям и советам. Возможно есть и более элегантные способы, о которых я не знаю.
Надеюсь, кому-то будет полезно.

+ 2 -
Рекомендую gitolite вместо gitosis-а. Он легче и позволяет определять права на конкретные теги/ветки/файлы, в от отличие от.