Hvis du er kjent med Git-revisjonskontrollsystemet, har du mest sannsynlig hørt om sosiale programvaresider som bruker Git, for eksempel GitHub, Gitorious og Sourceforge. Disse nettstedene er gode for samarbeid, men hva om du vil være vert for et privat Git-depot på din egen personlige nettside?

GitList er en PHP-frontend for Git som forskjønner og forenkler å bla gjennom Git-repositoriene, og du kan være vert for den hvor du vil. Si farvel til ublu avgifter for hosting av ditt private depot; GitList er helt gratis, og på grunn av sine minimale avhengigheter kan du til og med kjøre den på (noen) delte web hosting planer.

Grensesnittet ser sikkert ut til deg GitHub-brukere der ute! Det er ganske glatt og moderne i forhold til det klare grensesnittet til Gitweb, Gits standardwebfront, og det kommer fullpakket med brukervennlige funksjoner. Noen av disse inkluderer:

  • Støtte for å bla gjennom flere arkiver
  • Flere gren- og tagstøtte
  • RSS-feeder
  • Syntax utheving
  • Statistikk på depotene dine
  • Enkel installasjon i forhold til andre nettbaserte Git frontender

Krav

Som nevnt tidligere, kan du installere GitList på noen delte web hosting planer. Du trenger et par ting på den eksterne serveren din, som ikke alle delte hostingplaner tilbyr:

  • Git
  • SSH-tilgang

Vær oppmerksom på at SSH-tilgang ikke er nødvendig for å installere GitList selv, men du trenger det for å opprette og administrere de eksterne Git-repositoriene fra kommandolinjen.

I tillegg til disse to elementene, trenger du:

  • Apache med mod_rewrite aktivert eller Nginx på den eksterne serveren
  • PHP 5.3.3 på den eksterne serveren
  • Git på din lokale maskin

Installasjon

Ta en tarball av GitList-koden fra hovedsiden på GitList.org. Du kan velge mellom den siste stabile utgivelsen, som på tidspunktet for denne skrivingen er 0, 3, eller utviklingsbyggingen. Jeg valgte utviklingsbygg, men i begge tilfeller kan du følge de samme installasjonsinstruksjonene.

Trekk tarballen ut i katalogen på nettstedet ditt, som du vil installere GitList - ikke forveksle med katalogen din faktiske Git-repositorier er installert i, som vi kommer til å komme i en liten bit.

Fra nå av vil instruksjonene i denne artikkelen anta at du er logget på nettstedet ditt via SSH. Skriv inn GitList-katalogen din og angi 777 tillatelser til «cache» -underkatalogen (opprett den hvis den ikke allerede eksisterer):

 [mkdir cache] chmod 777 cache 

Flytt nå filen config.ini-eksempel til config.ini:

 mv config.ini-eksempel config.ini 

Åpne config.ini for redigering i en av tekstredigeringene som er tilgjengelig på den eksterne serveren. For eksempel:

 vi config.ini 

For denne delen må du allerede ha en eller flere Git-lagre lagret et sted på serveren din. Hvis du ikke gjør det, les det neste avsnittet og kom tilbake hit.

Fyll ut repositories i koden med hele banen til Git-prosjektkatalogen. Hvis du ikke kjenner hele banen, kan du cd inn i katalogen og skrive inn pwd ; utgangen er hele banen. I dette tilfellet ble min Git-prosjekteringskatalog kalt "gitprojects", og den levde under underkatalogen "Git" på mitt hovedområde, så jeg skrev inn min vei tilsvarende (mappestrukturen kan variere på tvers av webverter, så vær forsiktig):

Få et Git Repository på serveren din

Gå videre og hopp over denne delen hvis du allerede har satt opp dine eksterne arkiver. Hvis ikke, her er en måte å gjøre det på.

Forbered deg først et Git-lager på din lokale maskin. Du kan lage et lager fra en hvilken som helst katalog. For eksempel, la oss si at du har en mappe kalt "skilpadder" med noen få filer i den:

 cd skildpadder git init #this initialiserer repository git add * # dette fører til at alle filer i katalogen blir sporet for revisjoner git commit -m "Opprett min repo" * #commits filene og legger til en kommentar 

Nå SSH i den eksterne serveren din for å lage og initialisere et blott arkiv:

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

Gå tilbake til din lokale maskin og legg til en ekstern avdeling. Det er vanlig å kalle det "opprinnelse", men du kan bruke hvilket som helst navn du ønsker (bruk av andre navn kommer til nytte hvis du deler de samme filene med flere eksterne lagre). Følg formatet til dette eksemplet, men endrer filbanene dine på riktig måte:

 git ekstern legg til opprinnelse ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git 

Trykk på filene dine på den eksterne serveren:

 git push --all opprinnelse 

Ta-da! Du har nå en ekstern kopi av Git-arkivet du kan bla gjennom med GitList. Ikke glem å sette hovedkatalogens sti inn i config.ini først.

Sikre ditt arkiv

Hvis du er bekymret for å holde lageret borte fra nysgjerrige øyne, beklager jeg å fortelle deg at GitList gir ingen innebygd brukerautentiseringsmetode. Men i de fleste tilfeller kan du passordbeskytte en katalog rett fra nettstedets kontrollpanel. I cPanel er det her i avsnittet "Sikkerhet":

Alternativt kan du manuelt konfigurere Apache-serveren for å begrense tilgangen til bestemte brukere.

Konklusjon

Hosting dine egne repositorier kan være både empowering og budsjettbesparende. Enten du har brukt Git for en stund eller du er i begynnelsen av nysgjerrighet om hvordan du kan dra nytte av versjonskontroll, oppfordrer jeg deg til å gi self-hosting og GitList et forsøk - med mindre du selvfølgelig er helt innhold som gir kontroll over innholdet ditt til tredjepart.