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. Git nennt den Index auch Staging Area.
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
- 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
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.