Git-Anleitungen
Git Cherry-Pick: Kopieren Sie ein Commit in einen anderen Zweig und beheben Sie Konflikte
Benötigen Sie eine Fehlerbehebung, ohne den gesamten Funktionszweig zusammenzuführen? Erfahren Sie, wie Cherry-Pick funktioniert, das richtige Ziel auswählen, abhängige Commits verarbeiten und das Ergebnis visuell in GitTree überprüfen.
Git Cherry-Pick wendet die durch einen Commit eingeführte Änderung auf Ihren aktuellen Zweig an und zeichnet normalerweise einen neuen Commit auf. Wechseln Sie zu dem Zweig, der den Fix erhalten soll, überprüfen Sie den Quell-Commit und führen Sie dann git cherry-pick <commit> aus. Der Quellzweig bleibt bestehen. Wenn der Patch einen Konflikt verursacht, lösen Sie die Dateien auf und fahren Sie fort oder brechen Sie den Vorgang ab.
Stellen Sie sich einen Zahlungsfehler vor, der am feature/checkout behoben wurde, während ein Release-Zweig nur diesen Fix benötigt. Das Zusammenführen der gesamten Funktion könnte zu unvollendeter Arbeit führen. Diese Anleitung zeigt, wie Sie nur den Fix mit Git und mit GitTree, dem Client, den wir für macOS, Windows und Linux erstellen, kopieren. Der zusätzliche Wert der visuellen Route besteht darin, den Zielzweig und den Quellunterschied zu überprüfen, bevor die Änderung übernommen wird.
Cherry-Pick vs. Merge vs. Rebase: Wählen Sie die Operation
| Ziel | Betrieb | Wirkung |
|---|---|---|
| Bringen Sie einen Zweig und seine Abstammung zusammen | Zusammenführen | Integriert Filialhistorien |
| Wiederholen Sie eine Entwicklungslinie auf einer anderen Basis | Rebase | Schreibt die wiederholten Commits neu |
| Bringen Sie ausgewählte Änderungen ohne den gesamten Zweig mit | Rosinenpickerei | Wendet ausgewählte Patches auf den aktuellen Zweig an |
Cherry-Pick ist nützlich für einen Backport oder einen kleinen Fix, der in den falschen Zweig übernommen wird. Es ist ein schlechter Ersatz für das wiederholte Zusammenführen zweier Zweige, die ihre gesamte Arbeit teilen sollten: Kopierte Änderungen können schwierig nachzuverfolgen sein. Informationen zu einem gesamten Branch-Workflow finden Sie unter interactive rebase und im Commit Graph Guide.
So wählen Sie einen Commit für einen anderen Zweig aus
Beginnen Sie mit einem sauberen Arbeitsbaum. Unvollendete Änderungen übernehmen oder speichern; Der Stash-Leitfaden behandelt diesen Workflow zum Anhalten und Fortsetzen. Wenn es sich um einen Remote-Fix handelt, rufen Sie ihn ab und überprüfen Sie dann den Quellverlauf. Die Zweignamen und der Hash unten sind Beispiele: Ersetzen Sie sie durch einen vorhandenen Zielzweig, Ihren Quellzweig und den tatsächlichen Fix-Hash.
git status
git fetch origin
git log --oneline origin/feature/checkout
git show abc1234
git switch release/2.x
git status
git cherry-pick -x abc1234
git show --stat HEAD
git status-x fügt der Nachricht den Quell-Commit-Verweis für eine saubere Rosinenauswahl hinzu, was die Verfolgung öffentlicher Backports erleichtert. Aktualisierungen der Remote-Tracking-Referenzen abrufen; Ihr ausgecheckter Release-Zweig wird nicht automatisch aktualisiert. Bestätigen Sie, dass das Ziel der Überarbeitung entspricht, die Ihr Team erwartet. Überprüfen Sie den neuen Commit und führen Sie vor dem Pushen die Tests des Release-Zweigs durch.
Der ausgewählte Commit hat normalerweise einen anderen Hash, da sich die übergeordneten und anderen Commit-Metadaten unterscheiden. Das Original verbleibt im Quellzweig. Durch das Kopieren eines Fixes wird dieser nicht aus dem falschen Zweig entfernt; Die Entscheidung, wie dieser Zweig bereinigt wird, ist eine separate historische Entscheidung, insbesondere wenn andere Leute ihn bereits verwenden.
Wie man in GitTree visuell Rosinen auswählt
Öffnen Sie den Zielzweig
Schauen Sie sich den Zweig an, der den Fix benötigt. Überprüfen Sie die WIP-Zeile und übernehmen Sie die Änderungen oder speichern Sie sie, bevor Sie beginnen.
Überprüfen Sie den Quell-Commit
Suchen Sie den Fix im Diagramm und lesen Sie seinen Unterschied. Prüfen Sie, ob frühere Änderungen übernommen werden, die das Ziel nicht enthält.
Wählen Sie Cherry-Pick Commit
Klicken Sie mit der rechten Maustaste auf den Quell-Commit und wählen Sie Cherry-Pick-Commit. Für mehrere Commits verwenden Sie Strg-Klick oder Befehl-Klick, um Zeilen auszuwählen, und wählen Sie dann „Cherry-Pick-Commits“ aus. Überprüfen Sie Abhängigkeiten und Reihenfolge, bevor Sie beginnen.
Beheben oder abbrechen, wenn es stoppt
Verwenden Sie das Konfliktbanner, um betroffene Dateien zu öffnen. Lösen Sie die Ergebnisse auf, stellen Sie sie bereit und fahren Sie dann fort. Wählen Sie „Abbrechen“, um den aktiven Vorgang abzubrechen.
Sehen Sie sich die neue Geschichte an
Überprüfen Sie den neuen Commit oben im empfangenden Zweig, testen Sie das betroffene Verhalten und überprüfen Sie den Zweig erneut, bevor Sie ihn übertragen.

Laden Sie GitTree herunter, um diesen Arbeitsablauf mit einem visuellen Diagramm- und Konflikteditor zu verfolgen. Cherry-Pick ist im kostenlosen Plan enthalten, einschließlich privater Repositories. Melden Sie sich bei der aktuellen offiziellen App an, öffnen Sie Ihr vorhandenes Repository und verwenden Sie denselben Git-Verlauf, den Sie bereits haben.
Wählen Sie mehrere Commits und Bereiche aus
git cherry-pick abc1234 def5678
# A linear range, including the first commit:
git cherry-pick "abc1234^..def5678"Dies sind alternative Beispiele. Eine explizite Liste wählt die Commits in der angegebenen Reihenfolge aus; Setzen Sie die erforderlichen Änderungen an die erste Stelle. Ein Bereich folgt Revisionssatzregeln, anstatt die Zeilen auszuwählen, die Sie zufällig in einem Diagramm sehen. A..B schließt A aus; A^..B schließt A für eine einfache lineare Folge ein, wenn A ein übergeordnetes Element hat. Für einen Anfänger-Backport bevorzugen Sie eine explizite, überprüfte Liste gegenüber einem Bereich, der Zusammenführungen kreuzt.
Rosinenpick-Konflikte lösen und weitermachen
Wenn Git den Patch nicht anwenden kann, wird es angehalten. Führen Sie git status aus, um den Vorgang und die in Konflikt stehenden Pfade zu identifizieren, und bearbeiten Sie dann das gewünschte Ergebnis. Verwenden Sie den Leitfaden zur Konfliktlösung für Markierungsbeispiele und den Drei-Wege-Editor GitTree. Für eine syntaktisch saubere Auflösung sind noch Tests erforderlich: Das Ziel verwendet möglicherweise unterschiedliche APIs.
git status
git diff --name-only --diff-filter=U
# Resolve the file, then check and stage it:
git diff --check
git add -- src/payment.ts
git diff --cached
git cherry-pick --continueEine Sequenz kann mehr als einmal pausieren, einmal für jeden problematischen Commit. Wenn Git sagt, dass die Auswahl leer ist, prüfen Sie, ob die Änderung bereits vorhanden ist oder durch Ihre Lösung entfernt wurde. Verwenden Sie git cherry-pick --skip nur, wenn Sie diesen Commit bewusst weglassen möchten; Es handelt sich nicht um eine allgemeine Konfliktlösung.
Git-Cherry-Pick-Abbruch vs. Beenden vs. Überspringen
| Befehl | Bedeutung |
|---|---|
git cherry-pick --continue | Fahren Sie nach der Lösung und Bereitstellung fort |
git cherry-pick --abort | Abbrechen und den Zustand vor der Sequenz wiederherstellen |
git cherry-pick --skip | Lassen Sie den aktuellen Commit weg und fahren Sie mit der Sequenz fort |
git cherry-pick --quit | Vergessen Sie den Betriebsstatus, während die aktuellen Dateien und Commits an Ort und Stelle bleiben |
Commits zusammenführen, Abhängigkeiten fehlen und eine Auswahl rückgängig machen
Ein Merge-Commit benötigt eine übergeordnete Hauptzeile, da es Änderungen relativ zu mehr als einer übergeordneten Zeile darstellt. Überprüfen Sie es mit git show --no-patch --pretty=raw <merge>, bevor Sie git cherry-pick -m 1 <merge> in Betracht ziehen. Elternteil 1 ist nicht allgemein korrekt. GitTree fordert Sie auf, das übergeordnete Element auszuwählen; Wählen Sie anhand der Geschichte, mit der Sie vergleichen möchten, und nicht aufgrund Ihrer Gewohnheit. Die Auswahl des ursprünglichen gewöhnlichen Fix-Commits ist oft einfacher zu überlegen.
Wenn der kopierte Fix falsch erstellt wird, überprüfen Sie seine Voraussetzungen: Ein Hilfsprogramm, eine Schemaänderung oder eine Konfiguration kann in einem früheren Commit enthalten sein. Eine erfolgreiche Git-Operation beweist lediglich, dass der Patch angewendet wurde. Testen Sie den empfangenden Zweig. Um eine abgeschlossene Auswahl des gemeinsamen Verlaufs rückgängig zu machen, setzen Sie den neuen Commit zurück, der im Zielzweig erstellt wurde, nicht den ursprünglichen Quell-Hash. Überprüfen Sie bei unveröffentlichten Arbeiten die Optionen zum Zurücksetzen und Wiederherstellen unter Git-Fehler rückgängig machen, bevor Sie den Zweigverlauf verschieben.
Häufig gestellte Fragen
Verschiebt oder kopiert Cherry-Pick ein Commit?
Es wendet die Änderungen auf den aktuellen Zweig an und erstellt normalerweise einen neuen Commit. Der Quell-Commit wird nicht gelöscht und der Quellzweig wird nicht verschoben.
In welcher Filiale sollte ich mir zuerst umschauen?
Überprüfen Sie das Ziel: die Filiale, die die Änderung erhalten soll. Wählen Sie den Quell-Commit erst aus, nachdem Sie den Zielzweig überprüft haben.
Warum entsteht ein Rosinenpick-Konflikt?
Der Patch wird auf einen anderen Kontext angewendet. Das Ziel hat möglicherweise dieselben Zeilen bearbeitet oder gelöscht oder es fehlen erforderliche Änderungen.
Kann ich Rosinen auswählen, ohne mich zu verpflichten?
Ja. git Cherry-pick --no-commit wendet die ausgewählten Änderungen auf den Arbeitsbaum und den Index an, ohne die üblichen Commits durchzuführen. Überprüfen Sie das Ergebnis selbst und bestätigen Sie es.
Ist Cherry-Pick in GitTree kostenlos?
Ja. Der Free-Plan beinhaltet diesen lokalen Git-Vorgang auch für private 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.