Wenn Sie mit dem Revisionskontrollsystem von Git vertraut sind, haben Sie wahrscheinlich von Social-Software-Sites gehört, die Git verwenden, wie GitHub, Gitorious und Sourceforge. Diese Websites eignen sich hervorragend für die Zusammenarbeit, aber was ist, wenn Sie ein privates Git-Repository auf Ihrer eigenen persönlichen Website hosten möchten?

GitList ist ein PHP-Frontend für Git, das Ihre Git-Repositories verschönert und vereinfacht, und Sie können es überall hosten. Verabschieden Sie sich von exorbitanten Gebühren für das Hosting Ihres privaten Repositories; GitList ist absolut kostenlos, und aufgrund seiner minimalen Abhängigkeiten können Sie es sogar auf (einigen) freigegebenen Web-Hosting-Plänen ausführen.

Das Interface kommt dir GitHub-Nutzern sicher bekannt vor! Es ist ziemlich glatt und modern im Vergleich zu der klirrigeren Oberfläche von Gitweb, dem Standard-Web-Frontend von Git, und es ist vollgepackt mit benutzerfreundlichen Funktionen. Einige davon umfassen:

  • Unterstützung für das Durchsuchen mehrerer Repositorys
  • Unterstützung für mehrere Zweige und Tags
  • RSS-Feeds
  • Satzstellung markieren
  • Statistiken zu Ihren Repositories
  • Einfache Installation im Vergleich zu anderen webbasierten Git-Frontends

Bedarf

Wie bereits erwähnt, können Sie GitList auf einigen freigegebenen Webhosting-Plänen installieren. Sie benötigen auf Ihrem Remote-Server ein paar Dinge, die nicht alle gemeinsam genutzten Hosting-Pakete bieten:

  • Git
  • SSH-Zugang

Beachten Sie, dass der SSH-Zugriff nicht erforderlich ist, um GitList selbst zu installieren. Sie benötigen ihn jedoch zum Erstellen und Verwalten Ihrer Remote-Git-Repositorys über die Befehlszeile.

Zusätzlich zu diesen beiden Elementen benötigen Sie:

  • Apache mit mod_rewrite aktiviert oder Nginx auf Ihrem Remote-Server
  • PHP 5.3.3 auf Ihrem Remote-Server
  • Git auf Ihrem lokalen Rechner

Installation

Besorgen Sie sich einen Tarball des GitList-Codes von der Hauptseite auf GitList.org. Sie können zwischen der neuesten stabilen Version, die zum Zeitpunkt des Schreibens 0.3 ist, oder dem Entwicklungs-Build wählen. Ich habe den Entwicklungs-Build ausgewählt, aber Sie können in beiden Fällen die gleichen Installationsanweisungen befolgen.

Entpacke den Tarball in das Verzeichnis auf deiner Site, in das du GitList installieren willst - nicht zu verwechseln mit dem Verzeichnis, in dem deine tatsächlichen Git-Repositories installiert sind, auf die wir gleich eingehen werden.

Von nun an gehen die Anweisungen in diesem Artikel davon aus, dass Sie über SSH bei Ihrer Site angemeldet sind. Gib dein GitList-Verzeichnis ein und setze 777 Berechtigungen auf das "cache" -Unterverzeichnis (erstelle es, wenn es nicht bereits existiert):

 [mkdir cache] chmod 777 Cache 

Verschieben Sie nun das Datei config.ini-Beispiel nach config.ini:

 mv config.ini-Beispiel config.ini 

Öffnen Sie config.ini zum Bearbeiten in einem der Text-Editoren, die auf Ihrem Remote-Server verfügbar sind. Beispielsweise:

 vi Konfig.ini 

Für diesen Teil müssen Sie bereits ein oder mehrere Git-Repositorys auf Ihrem Server gespeichert haben. Wenn nicht, lesen Sie den nächsten Abschnitt und kommen Sie dann hierher zurück.

Füllen Sie den Abschnitt " repositories " im Code mit dem vollständigen Pfad Ihres Git-Projektverzeichnisses aus. Wenn Sie den vollständigen Pfad nicht kennen, können Sie in dieses Verzeichnis wechseln und pwd eingeben; Die Ausgabe ist der vollständige Pfad. In diesem Fall hieß mein Git Projekte-Verzeichnis "gitprojects", und es lebte unter dem "git" -Unterverzeichnis meiner Haupt-Site, also habe ich meinen Pfad entsprechend eingegeben (die Ordnerstruktur kann sich über Web-Hosts unterscheiden, sei also vorsichtig):

Ein Git Repository auf Ihren Server bringen

Fahren Sie fort und überspringen Sie diesen Abschnitt, wenn Sie Ihre Remote-Repositorys bereits eingerichtet haben. Wenn nicht, hier ist ein Weg, es zu tun.

Bereiten Sie zunächst ein Git-Repository auf Ihrem lokalen Computer vor. Sie können ein Repository aus einem beliebigen Verzeichnis erstellen. Angenommen, Sie haben einen Ordner namens "Schildkröten" mit ein paar Dateien darin:

 cd turtles git init #this initialisiert das Repository git add * #dies bewirkt, dass alle Dateien im Verzeichnis nach Revisionen verfolgt werden. git commit -m "Erstellt meinen Repo" * #gibt die Dateien und fügt einen Kommentar hinzu 

Jetzt SSH in Ihren Remote-Server, um ein nacktes Repository zu erstellen und zu initialisieren:

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

Kehren Sie zu Ihrem lokalen Computer zurück und fügen Sie eine Remote-Zweigstelle hinzu. Es ist üblich, es als "Ursprung" zu bezeichnen, aber Sie können den von Ihnen gewünschten Namen verwenden (die Verwendung anderer Namen ist praktisch, wenn Sie dieselben Dateien mit mehreren Remote-Repositorys teilen). Folgen Sie dem Format dieses Beispiels, ändern Sie jedoch Ihre Dateipfade entsprechend:

 git remote addursprung ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git 

Jetzt schiebe deine Dateien auf den Remote-Server:

 git push --all Ursprung 

Ta-da! Sie haben jetzt eine Remote-Kopie Ihres Git-Repositorys, das Sie mit GitList durchsuchen können. Vergessen Sie nicht, zuerst den Pfad des übergeordneten Verzeichnisses in Ihre config.ini einzugeben.

Sichern Sie Ihr Repository

Wenn Sie Bedenken haben, Ihr Repository vor neugierigen Blicken zu schützen, muss ich Ihnen leider sagen, dass GitList keine integrierte Benutzerauthentifizierungsmethode bietet. In den meisten Fällen können Sie jedoch ein Verzeichnis direkt auf dem Bedienfeld Ihrer Website mit einem Kennwort schützen. In cPanel, hier im Abschnitt "Sicherheit":

Alternativ können Sie den Apache-Server manuell konfigurieren, um den Zugriff auf bestimmte Benutzer einzuschränken.

Fazit

Das Hosting Ihrer eigenen Repositories kann sowohl die Leistungsfähigkeit als auch das Budget verbessern. Egal, ob Sie Git seit einiger Zeit verwenden oder am Anfang der Neugierde stehen, wie Sie von der Versionskontrolle profitieren können, ich empfehle Ihnen, Self-Hosting und GitList zu versuchen - es sei denn, Sie sind es vollkommen inhaltlich die Kontrolle über Ihre Inhalte Dritten überlassen.