Git-Versions-Verwaltung: Aktuelle Änderungen zwischen speichern mit git stash

Wenn mehrere Entwickler an einem Projekt arbeiten, ist es sinnvoll, eine Versionsverwaltung wie Git zu verwenden. So kann man besser nachvollziehen, wer welche Änderung eingefügt hat. Sie wollen die aktuellen Änderungen der anderen Team-Mitglieder in Ihre lokale Arbeitskopie herunterladen, haben aber selbst auch Dateien verändert? Normalerweise lässt Git einen Pull nicht zu, wenn Sie Änderungen vorgenommen haben, diese aber noch nicht eingetragen sind (commit). Die Lösung? Die Git-Zwischenablage. (mehr …)

Die fliegende Schildkröte: TortoiseGit

Die fliegende Schildkröte: TortoiseGit

Mit einer Versions-Verwaltung wie Git lässt sich verhindern, dass zeitgleiche Änderungen einer Datei durch mehrere Bearbeiter sich gegenseitig überschreiben. Zwar stammt Git ursprünglich aus der Linux-Welt (wie viele freie Programme), doch auch wer einen Windows-Computer zum Entwickeln verwendet, kann Git nutzen. Wie?

Git läuft auf Windows XP und höher, einschließlich Windows 8. Als erstes sollten Sie Git selbst installieren, anschließend folgt eine Erweiterung, mit der sich Git ins Kontextmenü im Windows-Explorer einklinkt. Für Windows ist das msysgit-Paket am einfachsten einzurichten. Laden Sie die aktuellste Version von msysgit.googlecode.com herunter (Abschnitt „Downloads“). Achten Sie darauf, eine „FullInstall“-Datei zu verwenden und keine abgespeckte Version. Starten Sie dann die heruntergeladene .exe-Datei, und folgen Sie dem Assistenten.

Jetzt laden Sie die Explorer-Erweiterung TortoiseGit, die Sie am Symbol einer Schildkröte erkennen können, von torgoisegit.googlecode.com. Nach der Installation finden Sie im Kontextmenü von Ordnern und Dateien ein neues Untermenü „TortoiseGit“.

Legen Sie jetzt einen neuen Ordner an und klicken in dessen Kontextmenü auf „TortoiseGit, Create repository here…“. Nun zum Testen eine Datei, zum Beispiel eine Textdatei, in das Repository kopieren (so heißen Git-Projekte offiziell). Zum Speichern (im Git-Jargon: „committen“) der Änderung, wieder in den Ordner rechtsklicken und auf „TortoiseGit, Commit -> ‚master‘…“ wählen. Ins Textfeld oben eine kurze Zusammenfassung eingeben (zum Beispiel „Test 1“), dann unten die neue Datei mit Haken versehen, damit sie einbezogen wird, schließlich auf „OK“ klicken.

Wird die Datei danach geändert, ändert sich ihr nun grüner Haken in ein rotes Ausrufezeichen. Erst wenn die Änderung erneut committet wird, erscheint auch das Häkchen wieder, zum Zeichen dafür, dass sich der Inhalt seit dem letzten Commit nicht verändert hat. Doppelklicken Sie dann im Commit-Dialog auf die Datei, um sich die Änderungen im Detail anzusehen.

Dateien vergleichen mit TortoiseMerge

Was versteht man unter… Git?

Viele Programme und Web-Projekte sind heute so umfangreich, dass sie kaum mehr mit nur einem Entwickler umsetzbar sind. Gefragt ist die Zusammenarbeit von mehreren Kollegen, von denen jeder sein Spezialgebiet hat. Dabei werden die Projektdateien oft über ein gemeinsames Netzwerk oder das Internet mit allen Beteiligten synchronisiert. Dass ein Mitarbeiter nicht die Quelltext-Änderungen eines anderen aus Versehen überschreibt, darauf achtet meist ein Versions-System. Das merkt sich, wer welche Datei wann bearbeitet, und dokumentiert dadurch gleichzeitig den Projektverlauf.

Das derzeit populärste Versions-System ist Git. Wenn ein Projekt Git verwendet, hat jeder Mitarbeiter eine Kopie aller Arbeitsdateien samt Verlauf. Ändert jemand eine Datei, trägt er das anschließend ins Versions-System ein und gibt einen kurzen Grund dafür an (man sagt, die Änderung wird „committet“). Zusammengefasste Änderungen lassen sich dann per Netzwerk oder Web zu den Kollegen schieben („pushen“). Diese lesen danach das Logbuch und übernehmen die Daten in ihre lokale Projektkopie.

Wurde eine Datei gleichzeitig sowohl von Ihnen als auch Ihren Kollegen bearbeitet, wird das als Konflikt angezeigt, und die Datei kann Zeile für Zeile in beiden Versionen nebeneinander betrachtet werden. So kann der Konflikt aufgelöst werden. Der Vorteil: Keine der beiden Änderungen wird durch die zeitlich spätere überschrieben. Würde hingegen ohne Versions-System eine Datei von zwei Entwicklern gleichzeitig geändert, würden die zuerst abgespeicherten Änderungen überschrieben, wenn dieser seine eigene Datei sichert.