Ако сте запознати с системата за контрол на преразглеждането на Git, най-вероятно сте чували за социални сайтове, използващи Git, като GitHub, Gitorious и Sourceforge. Тези сайтове са страхотни за съвместна работа, но какво ще стане, ако искате да бъде домакин на частно хранилище Git на личния ви уебсайт?

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

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

  • Поддръжка за сърфиране в няколко хранилища
  • Поддръжка на няколко клона и тагове
  • RSS емисии
  • Синтаксис осветяване
  • Статистика във вашите хранилища
  • Лесна инсталация в сравнение с други уеб базирани интерфейси Git

Изисквания

Както споменахме по-рано, можете да инсталирате GitList на някои споделени уеб хостинг планове. Имате нужда от няколко неща на отдалечения сървър, които не предлагат всички споделени хостинг планове:

  • Git
  • SSH достъп

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

В допълнение към тези два елемента ще ви трябва:

  • Apache с включен mod_rewrite или Nginx на отдалечения сървър
  • PHP 5.3.3 на вашия отдалечен сървър
  • Git на вашата локална машина

Инсталация

Вземете tarball на GitList кода от главната страница на GitList.org. Можете да избирате между най-новото стабилно пускане, което по време на това писане е 0.3, или разработката. Избрах развитието на разработката, но в двата случая можете да следвате същите инструкции за инсталиране.

Изтеглете тарбала в директорията на сайта си, към която искате да инсталирате GitList - да не се бърка с директорията, в която са инсталирани вашите Git хранилища, за които ще се сдобием малко.

Отсега нататък инструкциите в тази статия ще приемат, че сте влезли в сайта си чрез SSH. Въведете директорията си в GitList и задайте 777 разрешения в под-директорията "кеш" (създайте я, ако тя все още не съществува):

 [кеш mkdir] chmod 777 кеш 

Сега преместете файла config.ini-example към config.ini:

 mv config.ini-пример config.ini 

Отворете config.ini за редактиране в един от редакторите на текст, налични на отдалечения сървър. Например:

 vi config.ini 

За тази част вече трябва да имате един или повече хранилища на Git, съхранени някъде на вашия сървър. Ако не го направите, прочетете следващата секция и се върнете тук.

Попълнете секцията за repositories в кода с пълния път на вашата директория на проекта Git. Ако не знаете пълния път, можете да го добавите в директорията и да въведете pwd ; изходът е пълният път. В този случай моята директория за проекти на Git се нарича "gitprojects" и тя се намира под поддиректорията "git" на моя основен сайт, така че аз въведох съответния път (структурата на папките може да варира в различните уеб хостове, така че бъдете предпазливи):

Получаване на хранилище за Git в сървъра ви

Отидете напред и пропуснете този раздел, ако вече сте настроили вашите отдалечени хранилища. Ако не, тук е един начин да го направите.

Първо подгответе Git хранилище на вашата локална машина. Можете да направите хранилище от която и да е директория. Например, да речем, че имате папка, наречена "костенурки" с няколко файла в нея:

 cd костенурки git init # това инициализира хранилището git добавете * # това причинява проследяването на всички файлове в директорията за ревизии git commit -m "Създаване на моето репо" ## обвързва файловете и добавя коментар 

Сега SSH в отдалечения сървър за създаване и инициализиране на просто хранилище:

 mkdir turtles.git && cd костенурки.git git -bare init 

Върнете се в локалната машина и добавете отдалечен клон. Това е обичайно да се нарича "произход", но можете да използвате каквото и да е име, което желаете (използвайки други имена е полезно, ако споделяте едни и същи файлове с няколко отдалечени хранилища). Следвайте формата на този пример, но променете подходящо пътя на файловете си:

 git дистанционно добавяне на произход ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git 

Сега натиснете вашите файлове към отдалечения сървър:

 git push - цял произход 

Та-га! Вече имате дистанционно копие на хранилището си за Git, което можете да сърфирате в GitList. Не забравяйте първо да поставите пътя на основната директория във вашия config.ini.

Осигуряване на хранилището ви

Ако се притеснявате да не държите хранилището си далеч от любопитни очи, съжалявам да ви кажа, че GitList не предлага вграден метод за удостоверяване на потребител. В повечето случаи обаче можете да защитите паролата директно от контролния панел на уебсайта си. В cPanel, това е точно тук в раздела "Сигурност":

Друга възможност е да конфигурирате ръчно сървъра на Apache, за да ограничите достъпа до конкретни потребители.

заключение

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