Om du är bekant med Git revisionskontrollsystemet har du troligtvis hört talas om sociala mjukvaruwebbplatser som använder Git, som GitHub, Gitorious och Sourceforge. Dessa platser är bra för samarbete, men vad händer om du vill vara värd för ett privat Git-repository på din egen personliga hemsida?

GitList är en PHP-frontend för Git som förskönar och förenklar att du surfar på din Git-repositories, och du kan vara värd för var du än vill. Säg adjö till orimliga avgifter för att vara värd för ditt privata förråd GitList är helt gratis, och på grund av dess minimala beroende kan du även köra den på (vissa) delade webbhotell planer.

Gränssnittet ser säkert ut för dig GitHub-användare där ute! Det är ganska smidigt och modernt jämfört med det klara gränssnittet till Gitweb, Gits standardwebbplats, och den är komplett med användarvänliga funktioner. Några av dessa inkluderar:

  • Stöd för att bläddra i flera repositorier
  • Flera gren- och taggstöd
  • RSS-flöden
  • Syntaxmarkering
  • Statistik på dina arkiv
  • Enkel installation jämfört med andra webbaserade Git frontenden

Krav

Som vi nämnde tidigare kan du installera GitList på vissa delade webbhotell planer. Du behöver ett par saker på din fjärrserver som inte alla delade hostingplaner erbjuder:

  • Git
  • SSH-åtkomst

Observera att SSH-åtkomst inte krävs för att installera GitList själv, men du behöver den för att skapa och hantera dina fjärr-Git-repositories från kommandoraden.

Förutom de två objekten behöver du:

  • Apache med mod_rewrite enabled eller Nginx på din fjärrserver
  • PHP 5.3.3 på din fjärrserver
  • Git på din lokala maskin

Installation

Ta en tarball av GitList-koden från huvudsidan på GitList.org. Du kan välja mellan den senaste stabila utgåvan, som vid tidpunkten för denna skrivning är 0, 3 eller utvecklingsuppbyggnaden. Jag valde utvecklingsbyggnaden, men i båda fallen kan du följa samma installationsanvisningar.

Extrahera tarballen i katalogen på din webbplats som du vill installera GitList - för att inte förväxlas med katalogen där dina faktiska Git repositories är installerade i, vilket vi kommer att få på lite.

Från och med nu antar instruktionerna i den här artikeln att du är inloggad på din webbplats via SSH. Ange din GitList-katalog och ange 777 behörigheter till underkatalogen "Cache" (skapa den om den inte existerar):

 [mkdir cache] chmod 777 cache 

Flytta nu filen config.ini-exempel till config.ini:

 mv config.ini-exempel config.ini 

Öppna config.ini för redigering i en av de textredigerare som finns på din fjärrserver. Till exempel:

 vi config.ini 

För den här delen måste du redan ha en eller flera Git-arkiv lagrade någonstans på din server. Om du inte gör det, läs nästa avsnitt och kom tillbaka hit.

Fyll i repositories i koden med hela sökvägen i din Git-projektkatalog. Om du inte känner till hela sökvägen kan du cd i den katalogen och skriva in pwd ; utmatningen är hela banan. I det här fallet kallades min Git-projektkatalog "gitprojects", och den bodde under underkatalogen "git" på min huvudwebbplats, så jag skrev in min väg följaktligen (mappstrukturen kan variera mellan webbhotell, var försiktig):

Få ett Git-arkiv på din server

Fortsätt och hoppa över det här avsnittet om du redan har konfigurerat dina fjärrarkiv. Om inte, det här är ett sätt att göra det.

Förbered först ett Git-förråd på din lokala dator. Du kan göra ett förråd från en katalog. Låt oss säga att du har en mapp som heter "sköldpaddor" med några filer i den:

 cd sköldpaddor git init #this initierar förvaret git add * # det här orsakar att alla filer i katalogen ska spåras för revisioner git commit -m "skapade min repo" * #commits filerna och lägger till en kommentar 

Nu SSH till din fjärrserver för att skapa och initiera ett blott repository:

 mkdir turtles.git && cd turtles.git git --bare init 

Återgå till din lokala maskin och lägg till en fjärranslutning. Det är vanligt att kalla det "ursprung", men du kan använda vilket namn du önskar (användande av andra namn kommer till nytta om du delar samma filer med flera fjärrförvar). Följ formatet på det här exemplet men ändrar dina filvägar på ett korrekt sätt:

 git remote lägg till ursprung ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git 

Tryck nu på dina filer på fjärrservern:

 git push --all ursprung 

Ta-da! Du har nu en extern kopia av ditt Git-arkiv som du kan bläddra med GitList. Glöm inte att lägga in föräldrakatalogens sökväg till din config.ini först.

Säkra ditt arkiv

Om du är orolig för att hålla ditt förråd borta från nyfikna ögon, ångrar jag mig att GitList ger ingen inbyggd användarautentiseringsmetod. I de flesta fall kan du lösenordsskydda en katalog direkt från din webbplatsens kontrollpanel. I cPanel är det här i avsnittet "Säkerhet":

Alternativt kan du manuellt konfigurera Apache-servern för att begränsa åtkomsten till vissa användare.

Slutsats

Hantering av egna förråd kan vara både bemyndigande och budgetbesparande. Oavsett om du har använt Git ett tag eller du är i början av nyfikenhet om hur du kan dra nytta av versionskontroll, uppmanar jag dig att ge self-hosting och GitList ett försök - om du självklart inte är helt innehåll som lämnar kontrollen över ditt innehåll upp till tredje part.