Git Repository auf Webspace ohne WebDAV einrichten
24. January, 2009
Hat man etwas Webspace (z.B. für das eigene Blog) kann man relativ einfach sein eigenes git Repository anlegen. Was man dafür benötigt ist etwas Webspace mit Webserver und ssh Zugang. Eigentlich benötigt man auch noch WebDAV aber es geht auch ohne. Wie beschreibt der folgende Text.
Ersteinmal muss man sich “git” installieren. Einfach die aktuelle git-Version von http://git-scm.com/ herunterladen und auf den eigenen Webspace hochladen. Jetzt via ssh auf dem Webserver anmelden und git entpacken und kompilieren.
tar xzvf git-1.6.1.tar.gz
cd git-1.6.1
make configure
./configure --prefix=/absoluter/pfad/zum/webspace/git/
make all
make install
Nun hat man git auf seinem Server installiert und sollte noch die PATH Umgebungsvariable anpassen. Dazu habe ich in meinem Homeverzeichnis die Datei .profile mit folgendem Inhalt angelegt:
export PATH="/absoluter/pfad/zum/webspace/git/bin:$PATH"
Jetzt kann man sein lokales git Repository für den Webspace vorbereiten. Auf meinem Rechner habe ich in dem Ordner “FirstGit” ein kleines Projekt, was durch git versioniert wird.
git clone --bare ./FirstGit FirstGit.git
Nun kopiert man den Ordner FirstGit.git auf seinen Webserver und führt dort folgende Schritte aus:
cd FirstGit.git
git --bare update-server-info
mv hooks/post-update.sample hooks/post-update
Die Datei hooks/post-update musste ich noch anpassen und den darin enthaltenen Befehl exec git-update-server-info in exec git update-server-info ändern.
Um sich etwas Tipparbeit zu sparen editiert man auf seinem lokalen Rechner die Datei ~/.gitconfig und fügt einen neuen remote-Abschnitt ein.
[remote "FirstGit"]
url = ssh://Login@my.domain/absoluter/Pfad/zum/Projekt/FirstGit.git
uploadpack = /absoluter/pfad/zum/webspace/git/bin/git-upload-pack
receivepack = /absoluter/pfad/zum/webspace/git/bin/git-receive-pack
Wechselt man auf dem lokalen Rechner in den Projekt Ordner “FirstGit” kann man nun mit dem Befehl
git push FirstGit
das Repository auf dem Webserver aktualisieren. Dies geschieht wie im Remote-Abschnitt eingetragen via SSH. Nutzt man ssh shared-key authentication kann man sich auch das eingeben des Passworts ersparen. Würde man die Übertragung nicht per SSH sondern via HTTP machen wollen, wäre an dieser Stelle ein Webserver mit WebDAV Unterstützung nötig. Das bietet jedoch nicht jeder Hoster. SSH ist da noch durchaus üblicher.
Das Projekt kann man sich via HTTP mit folgendem Befehl vom Webserver holen:
git clone http://my.domain/FirstGit.git
Möchte man lediglich die lokale Version aktualisieren reicht folgendes:
git pull http://my.domain/FirstGit.git master
Für Änderungen via push wieder hochzustellen ist man auf SSH angewiesen, clone und pull funktionieren jedoch auch ohne WebDAV problemlos.
















Thomas R. Koll am 10. September, 2009 um 10:09
Auf github.com sollte man noch hinweisen, da findet sich vorallem die RubyOnRails Projekte aber auch vieles anderes. Und wer will darf auch mal über svnhub.com lachen