Git-Anleitungen
Git add -p: Stellen Sie bestimmte Zeilen bereit und führen Sie gezielte Commits durch
Zwei unabhängige Änderungen landeten in einer Datei. Schreiben Sie den Fix jetzt fest und verschieben Sie die Umgestaltung für später: eine praktische Anleitung zum Staging-Bereich, zum Patch-Modus und zur Zeilenauswahl von GitTree.
Um nur einen Teil einer Datei zu übernehmen, stellen Sie die gewünschten Änderungen mit `git add -p -- path/to/file` bereit, überprüfen Sie sie mit `git diff --cached` und übernehmen Sie dann den Commit. Die restlichen Änderungen bleiben in Ihren Arbeitsdateien. Öffnen Sie in GitTree die Datei diff, wählen Sie die geänderten Zeilen aus und wählen Sie „Stage Lines“, um die gleiche Art von fokussiertem Commit vorzubereiten.
Angenommen, Sie haben einen Checkout-Validierungsfehler behoben und dann mit der Neuorganisation derselben Komponente begonnen. Ein Prüfer sollte in der Lage sein, die Fehlerbehebung zu verstehen, ohne einen unvollendeten Refaktor lesen zu müssen. Dieser Leitfaden trennt diese Änderungen, bevor sie Geschichte werden. Das animierte Beispiel verwendet GitTree, den Client, den wir für macOS, Windows und Linux erstellen. Teilweises Staging gehört zum Free-Plan; Aktuelle offizielle Builds erfordern eine Anmeldung.
Arbeitsbaum, Staging-Bereich und Commit: Was wird gespeichert?
| Platz | Was es enthält | So überprüfen Sie es |
|---|---|---|
| Arbeitsbaum | Ihre Dateien, wie sie jetzt sind | Öffnen Sie die Dateien in Ihrem Editor |
| Index-/Staging-Bereich | Der vorgeschlagene nächste Schnappschuss | git diff --cached vergleicht es mit HEAD |
| KOPF | Der aktuelle Commit | git show HEAD:path/to/file |
Staging ist ein Auswahlschritt, kein Commit und kein Push. Eine Datei kann teilweise bereitgestellt werden: Der Index enthält eine Version, während Ihr Editor alle Änderungen anzeigt. Wenn Sie nach dem Staging erneut bearbeiten, wird die bereitgestellte Version nicht automatisch aktualisiert. Überprüfen Sie es noch einmal, bevor Sie es festlegen. Das visuelle Commit-Diagramm hilft bei der Überprüfung des Verlaufs, sobald das Commit existiert.
So verwenden Sie git add -p für eine Datei
Beginnen Sie mit git status und prüfen Sie alles, was bereits bereitgestellt wurde. Der Patch-Modus fügt ausgewählte Änderungen zum vorhandenen Index hinzu; Frühere Auswahlen werden dadurch nicht entfernt. Ersetzen Sie in diesem Beispiel src/checkout.ts durch Ihre verfolgte Textdatei und akzeptieren Sie dann nur den Validierungs-Fix, wenn Git nach jedem Block fragt.
git status
git diff --cached
git diff -- src/checkout.ts
git add -p -- src/checkout.ts
git diff --cached
git diff -- src/checkout.ts
git commit -m "fix: validate checkout input"Führen Sie den endgültigen Commit erst aus, nachdem Sie den bereitgestellten Diff überprüft und die beabsichtigte Änderung getestet haben. git diff --cached zeigt, was der Commit aufzeichnen wird; plain git diff zeigt, was nicht festgeschrieben bleibt. Verwenden Sie für diesen Workflow nicht git commit -a und geben Sie keine Dateipfade an git commit an: Diese Formulare können die gerade vorbereitete Teilauswahl umgehen.
Teilen Sie einen Teil auf, wenn Fix und Refactor nahe beieinander liegen
Ein Stück ist ein Block benachbarter geänderter Zeilen mit Kontext. Der Patch-Modus kann den Fix und den Refactor zusammenfassen. Verwenden Sie s, um Git zu bitten, den Block zu teilen. Wenn die Änderungen nicht automatisch getrennt werden können, öffnet e einen Patch-Editor oder eine visuelle Zeilenauswahl kann Ihnen bei der Auswahl der beabsichtigten Hinzufügungen und Entfernungen helfen.
| Schlüssel | Entscheidung |
|---|---|
y | Stellen Sie diesen Block bereit |
n | Lassen Sie diesen Block nicht bereitgestellt |
s | Teilen Sie es nach Möglichkeit in kleinere Blöcke auf |
e | Bearbeiten Sie den vorgeschlagenen Patch |
q | Hören Sie auf, die verbleibenden Blöcke zu überprüfen |
Betrachten Sie bei einem Ersatz sowohl die entfernte Zeile als auch deren Ersetzung als eine logische Änderung. Wenn Sie nur die Hälfte auswählen, kann Code entstehen, den Sie in Ihrem Editor nie gesehen haben. Die erweiterte Patch-Bearbeitung ist optional. Wenn Sie das inszenierte Ergebnis nicht erklären können, heben Sie es auf und wählen Sie eine klarere Grenze. Fokussierte Commits müssen eigenständig funktionieren und dürfen nicht einfach nur klein sein.
So stellen Sie bestimmte Zeilen in GitTree bereit
Öffnen Sie die geänderte Datei
Wählen Sie die Zeile // WIP und dann die Datei unter „Nicht bereitgestellte Dateien“ aus, um deren Diff zu öffnen.
Wählen Sie die richtige Menge
Verwenden Sie Stage Hunk für einen vollständigen Block oder kreuzen Sie die Kästchen neben den geänderten Zeilen an. Umschalt-Klick wählt einen Bereich aus.
Stellen Sie die ausgewählten Zeilen bereit
Wählen Sie in der Auswahlleiste Stage Lines. Die anderen Änderungen verbleiben in Ihren Arbeitsdateien.
Überprüfen Sie die bereitgestellte Version
Wählen Sie die Datei unter „Staging-Dateien“ aus und überprüfen Sie den Unterschied. Verwenden Sie „Unstage Hunk“ oder „Unstage Lines“, um die Auswahl zu korrigieren.
Nehmen Sie eine kohärente Änderung vor
Schreiben Sie eine Nachricht, in der die ausgewählte Änderung beschrieben wird, und übernehmen Sie sie. Kehren Sie für den nächsten Commit zu den verbleibenden Änderungen zurück.

Laden Sie GitTree herunter, um einen gemischten Diff zu überprüfen und fokussierte Commits visuell zu erstellen. Sie können es auf einem vorhandenen Repository neben dem Terminal verwenden; beide lesen denselben Git-Staging-Bereich.
Heben Sie die Bereitstellung von Änderungen auf, ohne Ihre Änderungen zu verwerfen
git restore --staged -- src/checkout.ts
# Or choose which staged blocks to remove:
git restore --staged -p -- src/checkout.tsDies sind alternative Befehle. Mit --staged ändert die Wiederherstellung den Index und nicht Ihre Arbeitsdatei. Bei einem Repository mit Commits wird der bereitgestellte Inhalt normalerweise in Richtung HEAD zurückgesetzt. Ohne --staged kann die Wiederherstellung funktionierende Änderungen überschreiben. Halten Sie daher die Unterscheidung klar. Wählen Sie in GitTree „Unstage“ und nicht „Discard“, wenn Sie nur ändern möchten, was der nächste Commit beinhaltet.
Warum eine Datei zweimal angezeigt wird oder eine Zeile nicht bereitgestellt werden kann
Eine Datei sowohl unter „Staging-Dateien“ als auch unter „Nicht bereitgestellten Dateien“ bedeutet normalerweise eine teilweise Bereitstellung oder eine spätere Bearbeitung, keine doppelte Datei. Eine neue, nicht verfolgte Textdatei benötigt möglicherweise git add -N -- path/to/new-file, bevor der Patch-Modus ihren Inhalt anbieten kann. Binärdateien haben keine gewöhnlichen Textblöcke; GitTree stellt Umbenennungen, LFS-Zeiger und Submoduländerungen auch als Vorgänge für die gesamte Datei bereit. Wenn Leerzeichen ausgeblendet sind, zeigen Sie es an, bevor Sie Änderungen nur für Leerzeichen auswählen.
Wenn ein Editor oder Formatierer die Datei ändert, nachdem Sie deren Diff geöffnet haben, lehnt GitTree möglicherweise eine veraltete Zeilenauswahl ab. Aktualisieren Sie das Diff und wählen Sie es erneut aus. Vermeiden Sie die Aufteilung eng verbundener Änderungen, nur um eine geringere Zeilenanzahl zu erreichen. Bei einer Aufgabenunterbrechung verstauen Sie die unvollendete Arbeit; Informationen zum bereits festgeschriebenen gemischten Verlauf finden Sie im Interactive Rebase Guide.
Testen Sie den Commit, den Sie vorbereiten, nicht nur die Dateien des Editors
Ihr normaler Testbefehl wird für Arbeitsdateien ausgeführt, die noch nicht bereitgestellte Änderungen enthalten. Das Bestehen der dortigen Tests beweist nicht, dass das teilweise Commit abgeschlossen ist. Führen Sie bei einer wichtigen Aufteilung den ersten lokalen Commit durch und überprüfen und testen Sie dann diesen Committed-Snapshot in einem separaten sauberen Checkout oder Arbeitsbaum. Fügen Sie die fehlende Abhängigkeit hinzu, wenn sie fehlschlägt, bevor Sie den Zweig freigeben. Der Worktree-Leitfaden erklärt, wie separate Ordner dabei helfen, diese Versionen voneinander zu trennen.
Häufig gestellte Fragen
Was macht git add -p?
Sie können Blöcke mit nicht bereitgestellten Änderungen auswählen, die Sie dem Index hinzufügen möchten. Es wird weder ein Commit erstellt noch Ihre Arbeit hochgeladen.
Kann ich nur ein paar Zeilen einer Datei festschreiben?
Ja. Stellen Sie diese Änderungen bereit, überprüfen Sie git diff --cached und führen Sie einen Commit ohne -a- oder Dateipfadargumente durch. Die anderen Änderungen bleiben unverbindlich.
Werden durch das Aufheben der Bereitstellung meine Änderungen gelöscht?
Beim Aufheben der Bereitstellung mit git restart --staged wird der Index geändert und die Arbeitsdateien bleiben in Ruhe. Das Verwerfen oder Wiederherstellen von Arbeitsdateien ist ein anderer Vorgang.
Warum kann Git mein Stück nicht teilen?
In der Nähe befindliche Bearbeitungen enthalten möglicherweise nicht genügend unveränderten Kontext, um automatisch geteilt zu werden. Überprüfen Sie den Patch manuell oder verwenden Sie die Zeilenauswahl, wobei abhängige Hinzufügungen und Entfernungen zusammengehalten werden.
Ist Teil-Staging in GitTree kostenlos?
Ja. File-, Hunk- und Line-Staging sind im kostenlosen Plan enthalten, einschließlich privater Repositorys. Aktuelle offizielle Builds erfordern eine Anmeldung.
Quellen
Behauptungen zu anderen Produkten wurden anhand der offiziellen Seiten auf 28. Oktober 2026 überprüft. Preise und Ausstattung ändern sich; Die Seiten der Anbieter sind die Quelle der Wahrheit.