Einen Teil einer Datei committen
Die Blöcke sind verschiedene Fälle, kein Gesamtskript. Wähle den passenden Fall. Branchnamen, Pfade und VERIFIED_COMMIT vor Nutzung ersetzen. Abbruchbefehle gelten nur für ihre laufende Operation; nicht beide Alternativen ausführen.
Kurzantwort
Git erstellt den Commit aus dem Index. Stage nur die Fehlerkorrektur und lass weitere Änderungen im Arbeitsverzeichnis für getrennte Commits.
Beispiel und Voraussetzungen
Das Beispiel enthält eine Korrektur und eine Debug-Ausgabe in derselben Datei. Beide Textänderungen müssen getrennt prüfbar sein.
Vor Änderungen prüfen
Vergleiche git diff und git diff --cached. Ersteres zeigt ungestagte Änderungen; Letzteres zeigt genau den Inhalt des nächsten Commits.
git status --short
git diff
git diff --cachedReferenz oder getrennten Checkout behalten
Staging löscht die übrige Änderung nicht. Index und Arbeitsverzeichnis bleiben getrennte Zustände, die du einzeln prüfen kannst.
Erster Ablauf
Öffne den Diff in FluxGit und wähle Stage change an der Korrektur. Im Commit-Panel muss die Debug-Ausgabe weiterhin ungestagt sein.
Anderes Ergebnis bewusst wählen
Im Terminal erlaubt git add -p die Auswahl von Hunks. Mit s und e kannst du gegebenenfalls einen Hunk teilen oder seinen Patch bearbeiten.
git add -p -- app.py
git diff --cachedGrenzen und Ausnahmen
FluxGits kleinste Einheit ist eine Änderung innerhalb eines Hunks. Eine Änderung mit sechs Zeilen wird vollständig gestagt, keine beliebig mit der Maus markierte Zeilenspanne.
Konflikte und Aufräumen
Unstaging erhält die Datei; Verwerfen verändert ihren Inhalt. FluxGit erstellt vor partiellem Verwerfen einen Sicherheits-Snapshot. Das sind unterschiedliche Aktionen.
Ergebnis prüfen
Lies git diff --cached vor dem Commit und git show danach. Prüfe auch git diff, damit die ausstehende Arbeit weiterhin in der Datei liegt.
git show --stat HEAD
git diff
git status --shortHäufige Fragen
Bei einem gewöhnlichen privaten Commit kann git reset --soft HEAD^ den Inhalt in den Index zurückbringen. Prüfe den Zustand und stimme Änderungen an geteilter Historie ab.
Operation in FluxGit prüfen
Commit Studio zeigt Diff und Nachricht zusammen. Prüfe den Inhalt beim Schreiben und erstelle Commits mit einer klaren Absicht.
Offizielle Git-Referenzen
Nur einen Teil einer Datei mit Git committen
Ein Bugfix und eine Debug-Ausgabe stehen in derselben Datei? Stage nur den Fix. Lerne den Git-Index, Stage change in FluxGit und git add -p kennen.
Auf YouTube ansehen — öffnet einen neuen Tab
In einem Test-Repository aufgenommen.
Transkript der Erzählung lesen
- Du hast einen Bug behoben und in derselben Datei eine Debug-Ausgabe stehen lassen. Du möchtest einen sauberen Commit: den Fix ohne die Ausgabe.
- Hier ist die Datei in FluxGit: app.py mit zwei Änderungen.
- Darum funktioniert es. Git committet nicht deinen Ordner, sondern den Index. Beide Änderungen liegen zunächst nur auf der Festplatte. Stage change übernimmt nur den Fix in den Index. Der Commit enthält genau das; die Debug-Ausgabe bleibt uncommittet auf der Festplatte.
- Öffne die Datei. Der Diff zeigt beide Änderungen, jede mit ihrer eigenen Schaltfläche Stage change.
- Klicke beim Fix auf Stage change. Nur diese Änderung wird gestagt; die Ausgabe bleibt, wo sie ist.
- Zurück im Commit-Bereich: Der Fix ist gestagt, die Ausgabe nicht.
- Schreibe die Nachricht und erstelle den Commit.
- Der neue Commit enthält den Fix und nur den Fix. Die Ausgabe bleibt uncommittet auf der Festplatte.
- Anders überlegt? Rückgängig nimmt den Commit zurück. Der Fix landet wieder im Index; deine Dateien bleiben unverändert.
- Im Terminal geht das mit git add -p. Git fragt nach jeder Änderung: Ja für den Fix, Nein für die Ausgabe. Dann committen.
- Zusammenfassung: Stage Änderungen statt ganzer Dateien. Eine Idee pro Commit. Bei einem Fehler: Rückgängig. Nächste Lektion: den letzten Commit korrigieren.