Git
Chapters ▾ 2nd Edition

4.7 Git auf dem Server - GitWeb

GitWeb

Nun, da du über einen einfachen Lese-/Schreibzugriff und Lesezugriff auf dein Projekt verfügst, kannst eine einfache webbasierten Git-GUI einrichten. Git wird mit einem CGI-Skript namens GitWeb ausgeliefert, das dafür verwendet werden kann.

Die webbasierte Benutzeroberfläche von GitWeb
Abbildung 49. Die webbasierte Benutzeroberfläche von GitWeb

Du kannst sehr einfach ausprobieren, wie GitWeb für dein Projekt aussehen würde. Es gibt einen Befehl, um eine temporäre Instanz zu starten. Dazu benötigst du auf deinem System einen simplen Webserver wie lighttpd oder webrick. Auf Linux-Maschinen wird lighttpd oft installiert, so dass du ihn wahrscheinlich direkt starten kannst, indem du git instaweb in deinem Projektverzeichnis eingibst. Wenn du einen Mac verwenden, wird Leopard mit Ruby vorinstalliert geliefert, so dass webrick dein Favorit sein sollte. Um instaweb mit einem nicht-lighttpd Handler zu starten, kannst du es mit der Option --httpd versuchen.

$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO  WEBrick 1.3.1
[2009-02-21 10:02:21] INFO  ruby 1.8.6 (2008-03-03) [universal-darwin9.0]

Dies startet einen HTTPD-Server auf Port 1234 und öffnet ein Webbrowser, der die Seite anzeigt. Das Vorgehen ist ziemlich einfach. Wenn du fertig bist und den Server herunterfahren möchtest, kannst du den gleichen Befehl mit der Option --stop ausführen:

$ git instaweb --httpd=webrick --stop

Wenn du das Web-Interface kontinuierlich auf einem Server für dein Team oder für ein gehostetes Open-Source-Projekt ausführen möchtest, musst du das CGI-Skript so einrichten, dass es von deinem Webserver zur Verfügung gestellt wird. Einige Linux-Distributionen haben ein gitweb Paket, das du möglicherweise über apt oder dnf installieren kannst, so dass du das zuerst ausprobieren solltest. Wir werden die manuelle Installation von GitWeb nur sehr kurz abhandeln. Zuerst musst du den Git-Quellcode, der im Lieferumfang von GitWeb enthalten ist, herunterladen und das benutzerdefinierte CGI-Skript generieren:

$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
    SUBDIR gitweb
    SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
    GEN gitweb.cgi
    GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/

Beachte, dass du dem Befehl mit der Variablen GITWEB_PROJECTROOT mitteilen musst, wo dein Git-Repositorys zu finden ist. Nun musst du Apache dazu bringen, CGI für dieses Skript zu verwenden. Dazu kannst du einen VirtualHost hinzufügen:

<VirtualHost *:80>
    ServerName gitserver
    DocumentRoot /var/www/gitweb
    <Directory /var/www/gitweb>
        Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script cgi
        DirectoryIndex gitweb.cgi
    </Directory>
</VirtualHost>

Auch hier kann GitWeb mit jedem CGI- oder Perl-fähigen Webserver zur Verfügung gestellt werden. Wenn du etwas anderes bevorzugst, sollte es nicht schwierig einzurichten sein. Nun solltest du in der Lage sein, http://gitserver/ zu besuchen, um deine Repositorien online zu betrachten.

scroll-to-top