Как управлять репозиториями Git на вашем собственном веб-сайте

Если вы знакомы с системой контроля версий Git, вы, скорее всего, слышали о сайтах социального программного обеспечения, использующих Git, таких как GitHub, Gitorious и Sourceforge. Эти сайты отлично подходят для совместной работы, но что, если вы хотите разместить частный репозиторий Git на своем личном веб-сайте?

GitList - это интерфейс PHP для Git, который украшает и упрощает просмотр ваших репозиториев Git, и вы можете разместить его где угодно. Попрощайтесь с непомерными сборами за размещение вашего частного репозитория; GitList абсолютно бесплатный, и из-за его минимальных зависимостей вы даже можете запускать его на (некоторых) общих планах веб-хостинга.

gitlist-interface

Интерфейс наверняка покажется вам знакомым для пользователей GitHub! Он выглядит довольно привлекательно и современно по сравнению с более неуклюжим интерфейсом Gitweb, веб-интерфейса Git по умолчанию, и он содержит удобные для пользователя функции. Некоторые из них включают:

  • Поддержка просмотра нескольких репозиториев
  • Поддержка нескольких веток и тегов
  • RSS-каналы
  • Подсветка синтаксиса
  • Статистика по вашим репозиториям
  • Простота установки по сравнению с другими веб-интерфейсами Git.

Требования

Как мы упоминали ранее, вы можете установить GitList на некоторых планах общего веб-хостинга. На вашем удаленном сервере вам понадобится несколько вещей, которые есть не во всех планах общего хостинга:

  • Git
  • Доступ по SSH

Обратите внимание, что доступ по SSH не требуется для установки самого GitList, но он понадобится вам для создания удаленных репозиториев Git и управления ими из командной строки.

Помимо этих двух предметов вам понадобятся:

  • Apache с включенным mod_rewrite или Nginx на удаленном сервере
  • PHP 5.3.3 на вашем удаленном сервере
  • Git на вашем локальном компьютере

Монтаж

Возьмите архив с кодом GitList с главной страницы GitList.org. Вы можете выбрать между последним стабильным выпуском, который на момент написания этой статьи был 0.3, или сборкой для разработки. Я выбрал сборку для разработки, но вы можете следовать одним и тем же инструкциям по установке в любом случае.

Распакуйте архив в каталог на вашем сайте, в который вы хотите установить GitList - не путать с каталогом, в котором установлены ваши фактические репозитории Git, о котором мы поговорим чуть позже.

С этого момента инструкции в этой статье предполагают, что вы вошли на свой сайт через SSH. Войдите в свой каталог GitList и установите права доступа 777 для подкаталога "cache" (создайте его, если он еще не существует):

Теперь переместите файл config.ini-example в config.ini:

Откройте config.ini для редактирования в одном из текстовых редакторов, доступных на вашем удаленном сервере. Например:

Для этой части у вас уже должен быть один или несколько репозиториев Git, хранящихся где-то на вашем сервере. Если нет, прочтите следующий раздел и вернитесь сюда.

Заполните раздел репозитории в коде, указав полный путь к каталогу вашего проекта Git. Если вы не знаете полный путь, вы можете cd в этот каталог и ввести pwd; вывод - полный путь. В этом случае мой каталог проектов Git назывался "gitprojects", и он находился в подкаталоге "git" моего основного сайта, поэтому я ввел свой путь соответствующим образом (структура папок может различаться на разных веб-хостах, поэтому будьте осторожны):

gitlist-config-ini

Добавление репозитория Git на ваш сервер

Пропустите этот раздел, если вы уже настроили удаленные репозитории. Если нет, то вот один из способов сделать это.

Сначала подготовьте репозиторий Git на вашем локальном компьютере. Вы можете создать репозиторий из любого каталога. Например, предположим, что у вас есть папка с названием "черепашки" с несколькими файлами:

Теперь подключитесь к удаленному серверу по SSH, чтобы создать и инициализировать пустой репозиторий:

Вернитесь на свой локальный компьютер и добавьте удаленную ветку. Принято называть его "origin", но вы можете использовать любое имя по своему усмотрению (использование других имен пригодится, если вы используете одни и те же файлы в нескольких удаленных репозиториях). Следуйте формату этого примера, но соответствующим образом измените пути к файлам:

Теперь отправьте свои файлы на удаленный сервер:

Та-да! Теперь у вас есть удаленная копия вашего репозитория Git, которую вы можете просматривать с помощью GitList. Не забудьте сначала указать путь к родительскому каталогу в config.ini.

gitlist-просмотр-файл

Безопасность вашего репозитория

Если вы беспокоитесь о том, чтобы ваш репозиторий находился подальше от посторонних глаз, с сожалением сообщаю вам, что GitList не предоставляет встроенного метода аутентификации пользователей. Однако в большинстве случаев вы можете защитить паролем каталог прямо из панели управления вашего веб-сайта. В cPanel это прямо здесь, в разделе "Безопасность":

gitlist-защита паролем-каталоги

Кроме того, вы можете вручную настроить сервер Apache, чтобы ограничить доступ для определенных пользователей.

Заключение

Размещение собственных репозиториев может дать вам дополнительные возможности и сэкономить бюджет. Независимо от того, используете ли вы Git какое-то время или у вас только начинается любопытство по поводу того, как вы можете извлечь выгоду из контроля версий, я настоятельно рекомендую вам попробовать самостоятельный хостинг и GitList - если, конечно, вы не полностью контент, оставляя контроль над вашим контентом третьим лицам.

Один комментарий

  1. Хороший! Спасибо!

Комментарии закрыты.