Git lokal (offline) für Synchronisation nutzen

Meine Situation:

verschiedene Datenträger:
1. NTFS-Festplatte aus altem Notebook, auf der sämtliche aktuellen Projekte liegen, an denen ich alleine arbeite.
2. Externe Backup-Festplatte, auf der bisher mit einem einfachen Synchronisations-Tool das Projektverzeichnis abgebilded ist
3. Jungfräuliche NTFS-Datenpartition auf neuem Notebook mit Windows 7
4. Desktop-PC mit Debian Lenny, frisch für die Entwicklung aufgesetzt.
5. 2,5″ Festplatte mit portablem Betriebssystem (muss noch komplett eingerichtet werden)

(1) dient als Original-Quelle; (2) soll weiterhin als Backup genutzt werden, (3), (4) und (5) sollen gleichwertige Arbeitsumgebungen sein, wobei immer nur jeweils eine genutzt wird.

Mit einer zentralen Versionsverwaltung wie SVN hätte ich mich für einen Ort als Server für das Repository entscheiden müssen, der von (3), (4) und (5) gleichermaßen erreichbar ist, die Wahl wäre dafür wohl auf unser Firmen-Intranet gefallen, eine Internet-Verbindung ist ja i.d.R. überall vorhanden.

Der große Unterschied bei GIT ist nun, dass jede Kopie als vollwertiges Repository fungiert und Commits erst einmal lokal erfolgen. Dies geht wiederum so schnell (auch wenn mal keine Netz-Verbindung besteht) dass es den Workflow nicht stört und man die Faustregel “Wenn sich die Änderung nicht in einem Satz zusammenfassen lassen, ist es zu viel für einen Commit” leichter beherzigen kann.

Ich arbeite also auf dem einem System, kann darauf isoliert arbeiten und committen, bis ich den Arbeitsplatz wechsle, dann müssen nur die beiden betroffenen Repositorys gemerged werden (schrecklich dieses Denglisch, aber das bringt unser Job so mit sich…) und ich kann auf dem anderen System genauso weitermachen. Da GIT das Arbeiten mit Branches sehr einfach macht, ist es dabei sinnvoll, jedes Mal einen Branch abzuzweigen und schlussendlich wieder zusammenzuführen. Habe ich doch einmal an unterschiedlichen Repositorys parallel gearbeitet, sollte es auch kein Problem sein, diese Änderungen zusammenzuführen.

In diesem Artikel beschäftige ich mich nun mit der Installation von GIT auf Windows und der initialen Einrichtung der Repositories.

Git für Windows: http://code.google.com/p/msysgit/downloads/list (Full installer)

Ich empfehle in jedem Fall, die Shell-Extension für den Explorer NICHT mit zu installieren, zunächst hatte ich das getan, unter Windows 7 dann aber jeden Eintrag doppelt im Kontextmenü stehen und die GUI ist eh Mist.

Die Shell-Extension wieder loszuwerden war gar nicht so einfach, siehe dazu hier:

http://code.google.com/p/msysgit/issues/detail?id=440&q=windows%20explorer&colspec=ID%20Type%20Status%20Priority%20Component%20Owner%20Summary

(Wichtig bei der vorgestellten Lösung: cmd als Administrator ausführen!)

Besser ist TortoiseGit, wer schon mit TortoiseSVN oder TortoiseCVS gearbeitet hat, wird sich gleich zu Hause fühlen:
http://code.google.com/p/tortoisegit/

Wichtig: das oben genannte Msysgit muss trotzdem zuerst installiert sein, lediglich die Shell-Extension wird überflüssig!

Erste schritte:

1-create-repository.png
=> initialized empty repository. ok.

2-commit-master.png
3-commit-dialog.png
4-output.png2.png

kein push, da noch kein remote repository ex.
5-clone.png
6-clone-dialog.png
… wird erstellt, fertig zum benutzen

weiter geht es mit
a) dem erstellen von weiteren clones (Debian Desktop-PC, Knoppix-USB-Festplatte, evtl Dropbox) und dem syncen dazwischen in unterschiedlichen Konstellationen
b) dem arbeiten mit branches

Hilfreiche Links:

http://de.gitready.com/ – Tutorial-Sammlung

Weitere Artikel:

Teil 2