Sådan administreres Git Repositories på din egen hjemmeside
Hvis du er bekendt med Git revision kontrolsystemet, har du højst sandsynligt hørt om sociale software sites, der bruger Git, som GitHub, Gitorious og Sourceforge. Disse steder er gode til samarbejde, men hvad hvis du vil være vært for et privat Git-depot på din egen personlige hjemmeside?
GitList er en PHP-frontend til Git, der forskønner og forenkler browsing af dine Git-repositorier, og du kan være vært for det, hvor du vil. Sig farvel til ublu gebyrer for hosting af dit private depot; GitList er helt gratis, og på grund af dets minimale afhængigheder kan du endda køre det på (nogle) delte web hosting planer.
Interfacet ser sikkert ud til dine GitHub-brugere derude! Det er ret flot og moderne i forhold til den klumpede grænseflade af Gitweb, Gits standardwebfront, og den er pakket med brugervenlige funktioner. Nogle af disse omfatter:
- Støtte til browsing flere arkiver
- Flere gren og tag support
- RSS feeds
- Syntax fremhævning
- Statistik på dine arkiver
- Nem installation i forhold til andre web-baserede Git frontends
Krav
Som vi tidligere nævnte, kan du installere GitList på nogle delte web hosting planer. Du har brug for et par ting på din fjernserver, som ikke alle delte hostingplaner tilbyder:
- git
- SSH adgang
Bemærk, at SSH-adgang ikke er nødvendig for at installere GitList selv, men du skal bruge det til at oprette og styre dine eksterne Git-repositorier fra kommandolinjen.
Ud over disse to ting skal du bruge:
- Apache med mod_rewrite aktiveret eller Nginx på din fjernserver
- PHP 5.3.3 på din fjernserver
- Git på din lokale maskine
Installation
Tag en tarball af GitList-koden fra hovedsiden på GitList.org. Du kan vælge mellem den seneste stabile udgivelse, som på tidspunktet for denne skrivning er 0, 3, eller udviklingen bygger. Jeg valgte udviklingsbygningen, men i begge tilfælde kan du følge de samme installationsanvisninger.
Udpak tarballen i den mappe på dit websted, som du vil installere GitList - ikke forveksles med den mappe, dine faktiske Git-repositorier er installeret i, som vi kommer til i en lille smule.
Fra nu af antager instruktionerne i denne artikel, at du er logget på dit websted via SSH. Indtast din GitList-mappe og indstil 777 tilladelser til underkatalogen "cache" (opret den, hvis den ikke allerede eksisterer):
[mkdir cache] chmod 777 cache
Flyt nu filen config.ini-eksempel til config.ini:
mv config.ini-eksempel config.ini
Åbn config.ini til redigering i en af de tekstredigerere, der er tilgængelige på din fjernserver. For eksempel:
vi config.ini
For denne del skal du allerede have en eller flere Git-lagre gemt et sted på din server. Hvis du ikke gør det, skal du læse det næste afsnit og derefter komme tilbage her.
Udfyld repositories
i koden med hele stien i din Git-projektmappe. Hvis du ikke kender hele stien, kan du cd
ind i den pågældende mappe og indtaste pwd
; udgangen er den fulde sti. I dette tilfælde blev min Git-projektmappe kaldet "gitprojects", og det levede under underkatalogen "git" på mit hovedwebsted, så jeg skrev i min vej i overensstemmelse hermed (mappestrukturen kan variere på tværs af webhoste, så vær forsigtig):
Få et Git Repository på din server
Gå videre og spring over dette afsnit, hvis du allerede har oprettet dine fjernarkiver. Hvis ikke, her er en måde at gøre det på.
Forbered dig først et Git-depot på din lokale maskine. Du kan oprette et lager fra enhver mappe. Lad os f.eks. Sige, at du har en mappe kaldet "skildpadder" med et par filer i den:
cd skildpadder git init #this initialiserer depot git add * # dette forårsager alle filer i mappen der skal spores for revisioner git commit -m "Created my repo" * # indeholder filerne og tilføjer en kommentar
Nu SSH til din fjernserver for at oprette og initialisere et blott arkiv:
mkdir turtles.git && cd turtles.git git --bare init
Gå tilbage til din lokale maskine og tilføj en fjernafdeling. Det er almindeligt at kalde det "oprindelse", men du kan bruge hvilket som helst navn du ønsker (ved at bruge andre navne, er det praktisk, hvis du deler de samme filer med flere fjernrepositorier). Følg formatet på dette eksempel, men ændrer dine filstier korrekt:
git remote tilføje oprindelse ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git
Skub nu dine filer til den eksterne server:
git push --all oprindelse
Ta-da! Du har nu en ekstern kopi af dit Git repository, som du kan gennemse med GitList. Glem ikke at lægge hovedkatalogets sti til din config.ini først.
Sikring af dit arkiv
Hvis du er bekymret for at holde dit depot væk fra nysgerrige øjne, beklager jeg at fortælle dig, at GitList ikke indeholder en indbygget brugerautentificeringsmetode. Men i de fleste tilfælde kan du kodeordbeskytte en mappe direkte fra dit websites kontrolpanel. I cPanel er det lige her i afsnittet "Sikkerhed":
Alternativt kan du manuelt konfigurere Apache-serveren for at begrænse adgangen til bestemte brugere.
Konklusion
Hosting dine egne repositorier kan både give empowerment og budgetbesparende. Uanset om du har brugt Git i et stykke tid, eller du er i begyndelsen af nysgerrigheden om, hvordan du kan få gavn af versionskontrol, opfordrer jeg dig til at give self-hosting og GitList et forsøg - medmindre du selvfølgelig er helt indhold, der giver kontrollen over dit indhold op til tredjepart.