Die Staging Area ist die Vormerkliste für das, was in den nächsten Commit soll. Sie sitzt zwischen dem Arbeitsverzeichnis und dem Repository: Du änderst Dateien, merkst einen Teil davon vor und schreibst nur diesen Teil in die Geschichte. Englisch to stage heißt bereitstellen.
- Staging Area
Die Vormerkliste für das, was in den nächsten Commit soll.
Beispiel: „In der Staging Area liegen zwei der fünf geänderten Dateien, der Rest wartet.“Auch: Index, Stage. In der Ausgabe von Git heißt sie meist schlicht „staged“.
Gefüllt wird sie mit
git add, geleert mitgit restore --staged.
Wozu die Staging Area gut ist
Sie trennt zwei Fragen, die sonst zusammenfallen: Was habe ich geändert, und was davon gehört zusammen? Wer an einem Nachmittag drei Dinge anfasst, kann daraus drei Commits machen, jeden mit seiner eigenen Begründung.
Das klingt nach Buchhaltung und zahlt sich in dem Moment aus, in dem eine Änderung zurückgenommen werden muss. Ein Commit, der genau eine Sache tut, lässt sich herausnehmen; einer, der fünf Sachen tut, nicht.
Warum die Staging Area als überflüssig gilt
Weil andere Werkzeuge ohne sie auskommen und viele Leute sie mit git commit -a überspringen. Dann wandert alles Geänderte in einem Zug in die Geschichte, und der Zwischenschritt entfällt.
Für kleine Änderungen ist das in Ordnung. Sobald mehrere Themen gleichzeitig offen sind, holt man sich damit genau die unübersichtlichen Commits ein, die später niemand mehr auseinandernehmen kann.
Was in der Staging Area oft übersehen wird
Dass sie einen Stand einfriert. Wer eine Datei vormerkt und danach weiterbearbeitet, hat zwei Fassungen: die vorgemerkte und die aktuelle. Der Commit nimmt die vorgemerkte.
Daher die Verwunderung, wenn eine gerade getippte Zeile nicht im Commit auftaucht. Ein zweites git add nach der letzten Änderung räumt das aus.