четверг, 6 января 2011 г.

Git. "Для тех, кто в танке..."


Январь 6, 2011

Последние несколько дней понемногу читаю и разбираюсь с git.

Несколько заметок.

1. Как я понял, gitosis служит для того, чтобы реализовывать нормальные права доступа к git-репозитариям для разных пользователей. В противном случае (при использовании ssh и если gitosis не использовать) все пользователи будут иметь права на запись в репозитарий. Хотя может быть я что-то не так понял. Я не уверен на счет вышенаписанного.

gitosis работает следующим образом. В когда мы добавили в файл /home/git/.ssh/autorized_keys ключ для пользователя, который имеет права администрирования репозитариев, то в данный файл не просто добавился ключ,а добавилась команда, которая будет запускаться при входе через ssh на данный сервер. Т.е. при входе через ssh на сервере запускается команда gitosis-serve, которая перехватывает соединение и обрабатывает все последующие команды. Таким образом мы не можем зайти с помощью клиента ssh на сервер под пользователем git (для которого настроен gitosis). Под данным пользователем может работать только git.

2. Есть возможность более тонкой настройки прав. Для этого можно использовать Gitolite.
http://progit.org/book/ch4-8.html
Gitolite allows you to specify permissions not just by repository, but also by branch or tag names within each repository. That is, you can specify that certain people (or groups of people) can only push certain “refs” (branches or tags) but not others.

3. Книга про git.
http://progit.org/book/