Уже несколько раз приходилось настраивать на серверах GIT-репозиторий под один проект, но постоянно приходилось искать всякие мелочи по настройке заново. Надоело… 🙂
В данной заметке опишу базовую установку самого GIT и настройку репозитория. Если быть точным, то подразумевается, что на нашем сервере всего один или несколько репозиториев, а авторизация будет проходить просто по логину и паролю. Не буду задевать разговоры про авторизации по ключу, поднятие gitosis или gitolite, о них можно найти доп.материалы в инете, а для базовой установки этого достаточно.
Первым делом определимся что и где будем хранить:
/home/www/site.com — папка для сайта, куда смотрит веб-сервер
/home/git/site.com — папка для репозитория
Первым делом создадим пользователя git. Во время создания пользователя укажем папку, которая будет хранилищем репозиториев:
# adduser --home /home/git/ git
Во время создания пользователя нам нужно будет задать пароль и ответить еще на пару вопросов.
Проверяем с какими параметрами создался пользователь:
# cat /etc/passwd | grep git git:x:1001:1002:Gemini_13,Developer,,:/home/git/:/bin/bash
Юзер готов и можно логинится под ним и создать папку для репозитория проекта.
# su git $ cd ~ $ mkdir site.com $ cd site.com
Создаем «чистый» репозиторий:
$ git init --bare Initialized empty Git repository in /home/git/site.com/
Примечание: Если репозиторий не bare, то нужно добавить настройку в конфиг:
$ git config receive.denyCurrentBranch ignore
Для того, чтобы после push мы могли видеть внесенные изменения уже в работе, нужно добавить хук(hook):
$ nano hooks/post-receive
Впишем следующий код и сохраним файл:
#!/bin/sh GIT_WORK_TREE=/home/www/site.com git checkout -f
Последним штрихом будет установка прав на выполнение:
$ chmod +x hooks/post-receive
Так как пользователь git нужен нам только для использования в системе GIT, то укажем ему обрезанную оболочку, которая не позволит выполнять какие-либо другие операции. Возвращаемся обратно в рут и меняем оболочку для пользователя git:
# usermod -s /usr/bin/git-shell git
Подключатmся по следующим настройкам:
ssh://git@X.X.X.X/home/git/site.com/
Вот и вся процедура базовой настройки гита 🙂