Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git Cherry-Pick kopiert die Änderungen aus mindestens einem Quellbranchcommit in einen Zielbranch. Im Gegensatz zu Merge oder Rebase können Sie mit Cherry-Pick bestimmte Quellbranchcommits auswählen. Für jeden Quellbranchcommit, für den Sie Cherry-Pick ausführen, erstellt Git einen entsprechenden Commit im Zielbranch.
Sie können Cherry-Pick für folgende allgemeine Aufgaben verwenden:
Bereitstellen eines bestimmten Features von einem Branch auf einem anderen
Kopieren von Arbeit, die Sie auf dem falschen Branch committet haben
Anwenden einer Fehlerbehebung auf mehrere Branches
Azure Repos bietet eingeschränkte Unterstützung für Cherry-Pick. So wird nur das Erstellen eines Pull Requests zum Anwenden eines Hotfixes auf einen Zielbranch unterstützt. Weitere Informationen finden Sie unter Verbessern von Azure DevOps Cherry-Pick.
Die Option Cherry-Pick im Menü „Pull Request“ von Azure Repos funktioniert wie folgt:
Aus dem Zielbranch des Pull Requests wird ein neuer Topic-Branch erstellt.
Alle Änderungen am Quellbranch des Pull Requests werden mit Cherry-Pick in den neuen Topic-Branch übertragen.
Sie werden aufgefordert, einen neuen Pull Request zu erstellen, um den neuen Topic-Branch in einen anderen Zielbranch zu mergen.
Die Weboberfläche von GitHub unterstützt kein Cherrypicking, GitHub Desktop hingegen schon. Eine schrittweise Anleitung zur Verwendung von Cherry-Pick in GitHub Desktop finden Sie unter Ausführen von Cherry-Pick für einen Commit.
Visual Studio 2022 bietet Git-Versionskontrolle mithilfe des Git-Menüs, Git-Änderungen sowie über Kontextmenüs im Projektmappen-Explorer. Visual Studio 2019, Version 16.8, bietet auch die Team Explorer-Git-Benutzeroberfläche. Weitere Informationen finden Sie auf der Registerkarte Visual Studio 2019 – Team Explorer.
Wählen Sie Git > Branches verwalten aus, um das Fenster Git-Repository zu öffnen.
Klicken Sie im Fenster Git-Repository mit der rechten Maustaste auf den Zielbranch, und wählen Sie Check-Out aus.
Klicken Sie in der Ansicht Branches mit der rechten Maustaste auf den Quellbranch, und wählen Sie Verlauf anzeigen aus, um eine Registerkarte Verlauf für Commits zu öffnen.
Klicken Sie auf der Registerkarte Verlauf mit der rechten Maustaste auf den Commit, für den Sie Cherry-Pick ausführen möchten, und wählen Sie Cherry-Pick aus. Visual Studio bietet keine Unterstützung für die gleichzeitige Ausführung von Cherry-Pick für mehrere Commits. Daher müssen Sie diesen Schritt für jeden Commit wiederholen, für den Sie Cherry-Pick ausführen möchten.
Visual Studio erstellt einen neuen Zielbranchcommit, der die Änderungen aus dem Cherry-Pick-Commit enthält. Wenn der Cherry-Pick-Vorgang nicht erfolgreich abgeschlossen wird, werden Sie von Visual Studio benachrichtigt.
Visual Studio 2019 bietet Git-Versionskontrolle über das Git-Menü, Git-Änderungen und über die Kontextmenüs im Projektmappen-Explorer.
Wählen Sie Git > Branches verwalten aus, um das Fenster Git-Repository zu öffnen.
Klicken Sie im Fenster Git-Repository mit der rechten Maustaste auf den Zielbranch, und wählen Sie Check-Out aus.
Klicken Sie in der Ansicht Branches mit der rechten Maustaste auf den Quellbranch, und wählen Sie Verlauf anzeigen aus, um eine Registerkarte Verlauf für Commits zu öffnen.
Klicken Sie auf der Registerkarte Verlauf mit der rechten Maustaste auf den Commit, für den Sie Cherry-Pick ausführen möchten, und wählen Sie Cherry-Pick aus. Visual Studio bietet keine Unterstützung für die gleichzeitige Ausführung von Cherry-Pick für mehrere Commits. Daher müssen Sie diesen Schritt für jeden Commit wiederholen, für den Sie Cherry-Pick ausführen möchten.
Visual Studio erstellt einen neuen Zielbranchcommit, der die Änderungen aus dem Cherry-Pick-Commit enthält. Wenn der Cherry-Pick-Vorgang nicht erfolgreich abgeschlossen wird, werden Sie von Visual Studio benachrichtigt.
Visual Studio 2019, Version 16.8 und höher, bietet eine Benutzeroberfläche für Git-Versionskontrolle, während die Team Explorer-Git-Benutzeroberfläche beibehalten wird. Um Team Explorer zu verwenden, deaktivieren Sie in der Menüleiste Extras>Optionen>Vorschaufeatures>Neue Git-Benutzeroberfläche. Sie können Git-Features über beide Schnittstellen austauschbar verwenden.
Wählen Sie in Team Explorer die Schaltfläche Start und dann Branches aus.
Klicken Sie in der Ansicht Branches mit der rechten Maustaste auf den Zielbranch, und wählen Sie Check-Out aus.
Klicken Sie in der Ansicht Branches mit der rechten Maustaste auf den Quellbranch, und wählen Sie Verlauf anzeigen aus, um eine Registerkarte Verlauf für Commits zu öffnen.
Klicken Sie auf der Registerkarte Verlauf mit der rechten Maustaste auf den Commit, für den Sie Cherry-Pick ausführen möchten, und wählen Sie Cherry-Pick aus. Visual Studio bietet keine Unterstützung für die gleichzeitige Ausführung von Cherry-Pick für mehrere Commits. Daher müssen Sie diesen Schritt für jeden Commit wiederholen, für den Sie Cherry-Pick ausführen möchten.
Visual Studio erstellt einen neuen Zielbranchcommit, der die Änderungen aus dem Cherry-Pick-Commit enthält. Wenn der Cherry-Pick-Vorgang nicht erfolgreich abgeschlossen wird, werden Sie von Visual Studio benachrichtigt.
Verwenden Sie den git log-Befehl, um Quellbranchcommits aufzulisten. Das --oneline-Flag kürzt die Commitinformationen ab.
git log --oneline <source branch>
Git listet zuerst die neuesten Commits auf. Jede Commit-ID ist ein partieller SHA-1-Hash, der den Commit eindeutig identifiziert. Beispiel:
e745d06 (HEAD -> add-network-controller) Add a test initialization class
a89f48e (origin/add-network-controller) Add fiber optic transceiver test
31da50b Add network switch test
e74baa2 (origin/main, origin/HEAD, test-fiber-optic-transmitter, main) Add readme content
0c14391 Add readme file
32e3946 Add project files.
Notieren Sie sich die ID des Commits, für den Sie Cherry-Pick ausführen möchten.
Checken Sie den Zielbranch aus, falls er noch nicht ausgecheckt ist.
git checkout <target branch>
Committen, stashen oder verwerfen Sie alle ausgecheckten Änderungen.
So verwenden Sie Cherry-Pick für einen einzelnen Commit:
git cherry-pick <commit ID>
Wenn Sie Cherry-Pick für mehrere Commits ausführen möchten, trennen Sie die Commit-IDs durch Leerzeichen. Die Commits werden in der Reihenfolge angewendet, in der Sie sie eingeben:
Wenn Sie Cherry-Pick für mehrere Commits ausführen, erstellt der standardmäßige Cherry-Pick-Befehl eine entsprechende Sequenz der neuen Zielbranchcommits. Verwenden Sie das -n-Flag, um Git anzuweisen, die Änderungen am Zielbranch zu stagen und nicht zu committen:
git cherry-pick -n <commit1 ID> <commit2 ID>
Anschließend können Sie manuell einen einzelnen Commit erstellen, der alle Änderungen aus dem Cherry-Pick-Vorgang enthält.
Wenn während des Cherry-Pick-Vorgangs Mergekonflikte auftreten, werden Sie von Git benachrichtigt. Sie können entweder die Konflikte lösen und dann git cherry-pick --continue ausführen oder git cherry-pick --abort ausführen, um den Cherry-Pick-Vorgang rückgängig zu machen.