====== git ======
git ist ein verteiltes Versionsverwaltungssystem. Im Gegensatz zu [[SVN]] wird nicht zwingend ein zentraler Server benötigt. Somit kann man die Vorteile einer Versionsverwaltung auch dann nutzen, wenn man gerade keinen Internetzugang zur Verfügung hat.
===== Vorbereitung =====
Im folgenden soll ein zentrales Repository erstellt werden. Dieses wird über [[WebDAV]] bereitgestellt.
==== WebDAV ====
Natürlich muss bereits ein fertiges (passwortgeschütztes) WebDAV-Verzeichnis existieren (siehe [[WebDAV]]).
==== git ====
Weiterhin wird ein funktionierendes git benötigt. Dieses Tutorial wurde mit Ubuntu 9.10 und git Version 1.7.0.2 erstellt.
===== Einrichtung des "Servers" =====
Da einige Fehler bei der direkten Erstellung des Repositories auf dem WebDAV-Verzeichnis auftreten, sollte die Einrichtung zunächst lokal erfolgen.
Dazu erstellt und konfiguriert man in einem neuen Ordner ein neues git Repository:
mkdir neuesprojekt
cd neuesprojekt
git init --bare --shared=all
git update-server-info
Damit ist die eigentliche Einrichtung des zentralen Repositories abgeschlossen. Natürlich muss das Repository noch auf den WebDAV-Server verschoben werden (z.B. nach http://webdav.meinedomain.tld/neuesprojekt/).
===== Einrichtung des Clients =====
Auf dem Client clont man sich als erstes das erstellte Repository:
git clone http://benutzername@webdav.meinedomain.tld/neuesprojekt/
cd neuesprojekt/
Man sollte daran denken den eigenen Namen und die eigene E-Mail Adresse sinnvoll festzulegen:
git config --global user.name Name
git config --global user.email E-Mail-Adresse
Nun kann das eigene Repository mit Daten gefüllt werden:
nano wichtige_datei
git add wichtige_datei
git commit -m "inital commit"
Die eigenen Änderungen (des master branches) werden nun auf das zentrale Repository übertragen:
git push tiggerswelt master
===== Troubleshooting =====
Falls es beim erstmaligen //pushen// eines neuen Branches zu Problemen kommt (fatal: git-http-push failed), kann es helfen per FTP eine leere Datei mit dem Namen des neuen Branches im Ordner refs/heads/ im zentralen Repository zu erstellen (und ggf. Schreibrechte setzen).
===== Weiterführende Links =====
* Webseite von git [[http://git-scm.com/]] (englisch)
* Git Wiki [[http://git.wiki.kernel.org/index.php/Main_Page]] (englisch)
* Wikipedia zu git [[http://de.wikipedia.org/wiki/Git]]
* git Manual Page [[http://www.kernel.org/pub/software/scm/git/docs/]] (englisch)