Хранение репозитариев GIT на сервере
Рано или позно приходишь к мысли, что не плохо бы иметь свой git сервер под проекты, чтоб не таскать взад-перед с компа на комп кучу наработок и скриптов. Ну и чтоб конечные потребители имели в наличии всегда срез последних наработок, а не таскали с сервера на сервер уже не актуальный скрипт.
Процесс установки:
1 |
apt-get install git gitweb openssh |
, где git собственно сервер репозиатриев.
gitweb — веб морда для него
openssh — сервер SSH который позволит безопасно работать с git
Далее создадим свой первый репозитарий. Например в папке /home/git/
1 2 3 |
mkdir first cd first git init --bare |
В папке будет создана следующая структура:
1 2 3 4 5 6 7 8 |
branches config description HEAD hooks info objects refs |
Содержимое файла description можно отредактировать чтоб увидеть внятное описание скрипта в вебморде.
Следует помнить, что на сервере git храняться лишь изменения файлов, непосредственно саму структуру файлов репозитария вы сможете увидеть только на «клиентах» сервера.
Теперь настроим собственно «вебморду».
1 |
mcedit /etc/gitweb.conf |
,и отредактиреум строчки:
1 2 |
$projectroot = "/home/git/"; //где лежат наши репозитарии $site_name = "Репозитарий скриптов и ПО ГК Рога и Копыта"; |
Вот и всё. Если теперь зайдете на на http://ваш_сервер/gitweb/, то увидите свой первый репозитарий git.
Как видите, вид совсем не презентабельный. Можно чуть «поколдовать» самому со скриптами в /usr/share/gitweb/static или взять еже готовую «тему» например с https://github.com/kogakure/gitweb-theme. Уже лучше.
Как пользоваться git на «клиенте»? Если пользуетесь например NetBeans, то заходим в меню Группа-Git-Клонировать, вводим адрес репозитария и все остальные данные, и следуем мастеру..
Безопасность.
Для того чтобы не дать доступ всем людям к данному репозитарию через giweb, можно поставить блокировку по паролю:
1 2 3 4 5 6 7 8 9 10 |
Alias /gitweb /usr/share/gitweb <Directory /usr/share/gitweb> AuthType Basic AuthName "Restricted Area 51" AuthBasicProvider file AuthUserFile /usr/share/gitweb/.htpasswd Require valid-user Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi </Directory> |
Создать пользователя:
1 |
htpasswd -c /usr/share/gitweb/.htpasswd $USER |