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.
Syntax
| Command | What 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.
| Command | What it does |
|---|---|
git cherry-pick --continue | Setzt nach dem Lösen der Konflikte fort |
git cherry-pick --abort | Bricht ab und stellt den Branch wieder her |
git cherry-pick --skip | Überspringt den aktuellen Commit |
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.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.