Gits Staging Area entwirrt gemischte Änderungen
Zusammenfassung
Ryan Tomayko zeigt, wie Gits Index einzelne Dateibereiche zu sauberen Commits bündelt, obwohl die Arbeitskopie mehrere Änderungen enthält.
Ideen
- Arbeitskopie, Staging Area und Repository bilden drei getrennte Zustände.
- git add --patch übernimmt ausgewählte Änderungen innerhalb einer Datei.
- Ein Commit muss nicht den gesamten aktuellen Arbeitsstand enthalten.
- git diff --cached prüft den vorbereiteten nächsten Commit.
- Interaktives Rebase ordnet, verbindet und bearbeitet lokale Commits nachträglich.
- Topic-Branches isolieren unfertige Arbeit ohne starre Vorausplanung.
Einsichten
- Werkzeuge sollten heutige Unordnung reparieren können statt gestrige Planung zu verlangen.
- Saubere Historie und flüssiges Experimentieren schließen sich nicht aus.
- Ein zusätzlicher Zwischenzustand schafft Kontrolle, obwohl er anfangs komplexer wirkt.
- Commits dokumentieren gedankliche Einheiten und nicht bloß Speicherzeitpunkte.
Fakten
- Git nennt den Index auch Staging Area.
- Patches lassen sich hunkweise auswählen.
- Nicht vorgemerkte Änderungen bleiben nach einem Commit erhalten.
- git commit --amend verändert den zuletzt erstellten Commit.
Empfehlungen
- Prüfe vor jedem Commit den vorgemerkten Diff.
- Trenne fachlich unabhängige Änderungen auch innerhalb derselben Datei.
- Bearbeite nur unveröffentlichte Historie nachträglich.
Referenzen
Der Link zur Originalquelle öffnet einen neuen Tab.