Первый же заплыв привел на github.com, а от него - к git. Командная строка, всё такое черно-серое, юниксоидное, бесплатное - словом, понравилось. Единственная проблема: как поднять репозиторий, доступный по http (у гитхаба какие-то ограничения, да и вообще прикольно же).
К счастью, нашлась толковая инструкция. Вкратце последовательность действий такова:
1. Конфигурируем apache2. Добавляем в /etc/apache2/sites-available/default следующие строки:
SetEnv GIT_PROJECT_ROOT /путь-до-репозитория SetEnv GIT_HTTP_EXPORT_ALL ScriptAliasMatch \ "(?x)^/git/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ "/usr/lib/git-core/git-http-backend/$1" <Directory /usr/lib/git-core/> Options +ExecCGI Order Allow,Deny Allow from all </Directory> <Location /git> AuthType Basic AuthName "Private Git Access" AuthUserFile /etc/apache2/authusers Require valid-user </Location>
2. Добавляем в файл с разрешенными пользователями нового пользователя по имени username командой:
htpasswd -c /etc/apache2/authusers username
3. Перезапускаем апач командой:
sudo /etc/init.d/apache2 restart
4. Настраиваем репозиторий. Создаем внутри каталога /путь-до-репозитория очередную папочку для проекта myProject, переходим в неё и выполняем волшебную команду:
git init --bare
5. Раздаем на каталог myProject права для учетной записи, под которой работает апач:
sudo chown -R www-data myProject sudo chgrp -R www-data myProject
После этого репозиторий должен быть доступен для использования. Пользоваться всем этим можно так:
1. Устанавливаем и настраиваем git на клиентской машине. Вводим имя пользователя (username), его e-mail (это будет отображаться при просмотре истории коммитов) и, если нужно, прокси:
git config --global user.name username git config --global user.email mymail@mymail.ru git config --global http.proxy http://myproxy:8888
2. Можно еще указать, чтобы git кэшировал на какое-то время пароли:
git config --global credential.helper 'cache --timeout=3600'(честно говоря, у меня не сработало; приходится каждый раз при выполнении команд git push, git pull вводить пароль)
3. Клонируем нужный проект в локальный каталог командой:
git clone http://username@host/git/myProject
4. Меняем в проекте всё, что нам надо, и скармливаем изменения git-у:
git add мой-измененный-файл
5. Коммитим изменения в проекте:
git commit -m "описание изменений"
6. Заливаем измененный проект обратно на сервер:
git push origin master
Кстати, вот тут лежит хороший учебник.
Комментариев нет:
Отправить комментарий