Menu
CoddyTech

Git Cherry-pick

Zuletzt aktualisiert

git cherry-pick kopiert die Änderungen eines oder mehrerer bestimmter Commits und wendet sie als neue Commits auf deinen aktuellen Branch an. So holst du dir einen einzelnen Fix aus einem anderen Branch, ohne den gesamten Branch zu mergen - nützlich, um einen Hotfix zurückzuportieren oder einen einzelnen Commit aus einem Feature-Branch zu ziehen.

Probiere das im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.

git cherry-pick kopiert einen ausgewählten Commit aus einem anderen Branch und wendet ihn auf deinen aktuellen Branch an.

Syntax

CommandWhat it does
git cherry-pick <hash>Wendet einen Commit auf den aktuellen Branch an
git cherry-pick <a> <b>Wendet mehrere Commits der Reihe nach an
git cherry-pick <a>..<b>Wendet einen Bereich von Commits an (ohne a)
git cherry-pick -n <hash>Wendet die Änderungen an, committet aber noch nicht
git cherry-pick -x <hash>Vermerkt den ursprünglichen Commit in der Nachricht

Während eines Cherry-pick

Wenn ein Cherry-pick auf einen Konflikt stößt, löse ihn und fahre fort.

CommandWhat it does
git cherry-pick --continueSetzt nach dem Lösen der Konflikte fort
git cherry-pick --abortBricht ab und stellt den Branch wieder her
git cherry-pick --skipÜberspringt den aktuellen Commit

Praxisbeispiel

SchrittBefehlErgebnis
1git log --oneline hotfixFinde den Hash des Fixes, zum Beispiel a1b2c3d
2git switch mainWechsle auf den Branch, der den Fix bekommen soll
3git cherry-pick a1b2c3dWendet den Fix als neuen Commit mit neuem Hash auf main an

Git cherry-pick FAQ

Was macht git cherry-pick?
Es nimmt die Änderungen, die ein bestimmter Commit einführt, und wendet sie als brandneuen Commit (mit neuem Hash) auf deinen aktuellen Branch an. Anders als merge oder rebase bringt es keinen ganzen Branch mit - nur den oder die Commits, die du angibst.
Wann sollte ich cherry-pick verwenden?
Verwende es, wenn du einen bestimmten Commit anderswo brauchst - zum Beispiel, um einen Bugfix von main in einen Release-Branch zurückzuportieren oder einen einzelnen nützlichen Commit aus einem Feature-Branch zu ziehen, ohne alles zu mergen. Wenn du den ganzen Branch willst, nutze stattdessen merge oder rebase.
Wie cherry-picke ich mehrere Commits?
Liste sie auf: git cherry-pick <a> <b> <c> wendet jeden der Reihe nach an. Für einen zusammenhängenden Bereich nutze git cherry-pick <start>..<end>, das jeden Commit nach start bis einschließlich end anwendet. Füge <start>^..<end> hinzu, wenn du start selbst einschließen willst.
Was, wenn ein Cherry-pick einen Konflikt verursacht?
Git pausiert und markiert die konfliktbehafteten Dateien. Löse sie, führe git add für die Ergebnisse aus und führe dann git cherry-pick --continue aus. Um alles rückgängig zu machen, nutze git cherry-pick --abort, das deinen Branch in den Zustand vor dem Start des Cherry-pick zurückversetzt.
Wie cherry-picke ich einen Commit aus einem anderen Branch?
Finde den Hash des Commits mit git log --oneline <other-branch>, wechsle auf den Branch, der ihn bekommen soll, und führe git cherry-pick <hash> aus. Du kannst auch einen Branch-Namen angeben, etwa git cherry-pick feature; dann wird der Commit an der Spitze dieses Branches übernommen.
Was ist der Unterschied zwischen cherry-pick und merge?
git merge übernimmt jeden Commit eines Branches und hält fest, wo die Historien zusammengeführt wurden. Cherry-pick kopiert nur die Commits, die du nennst, als neue Commits ohne Verbindung zu den Originalen. Merge den Branch, wenn du alles willst; nimm cherry-pick, wenn du nur ein oder zwei Commits brauchst.
Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um git cherry-pick in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt außerdem Schritt für Schritt das Verschieben von Commits zwischen Branches.
Illustration der Programmiersprachen bei Coddy

Lerne Git mit Coddy

LOS GEHT'S