Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015
Git-Cherry-Pick kopiert die Änderungen von einem oder mehreren Quellzweigen an einen Zielzweig. Im Gegensatz zum Zusammenführen oder Rebasen können Sie mithilfe von Cherry-Pick bestimmte Quellzweige-Commits auswählen. Für jeden Quellzweig, der Sie als Kirschauswahl auswählen, erstellt Git einen entsprechenden Commit für den Zielzweig.
Sie können diese gängigen Aufgaben angehen:
Stellen Sie ein bestimmtes Feature von einer Verzweigung zu einer anderen bereit.
Kopieren Sie Die Arbeit, die Sie auf dem falschen Zweig vorgenommen haben.
Azure Repos bietet eingeschränkte Unterstützung für die Kirschauswahl und nur zum Zweck der Erstellung einer Pullanforderung zum Anwenden eines Hotfixes auf einem Zielzweig. Weitere Informationen finden Sie unter Verbesserung der Azure DevOps Kirschauswahl.
Die Option "Cherry-Pick" im Pull-Anforderungsmenü in Azure Repos führt folgendes aus:
Erstellt einen neuen Themenzweig aus dem Zielzweig der Pullanforderung.
Cherry wählt alle Änderungen vom Quellzweig der Pull-Anforderung in den neuen Themenzweig aus.
Fordert Sie auf, eine neue Pullanforderung zu erstellen, um den neuen Themenzweig in einen anderen Zielzweig zusammenzuführen.
Die GitHub-Webschnittstelle unterstützt keine Kirschauswahl, aber GitHub Desktop funktioniert. Schrittweise Anleitungen zum Auswählen von Kirschen in GitHub Desktop finden Sie unter "Cherry-Pick a commit".
Visual Studio Version 2019, Version 16.8 und höher, bietet eine Git-Versionssteuerungsumgebung, während sie die Git-Benutzeroberfläche des Team Explorers beibehalten. Um Team-Explorer zu verwenden, deaktivieren Sie ToolsOptionsPreview>>FeaturesNew>Git-Benutzeroberfläche aus der Menüleiste. Sie können Git-Features von beiden Schnittstellen austauschbar verwenden. Nachfolgend stellen wir einen querseitigen Vergleich zum Kopieren von Änderungen von einer Quellzweigung in einen Zielzweig bereit.
Visual Studio Git
Wählen Sie Git Manage Branches aus, um das Git-Repositoryfenster> zu öffnen.
Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf den Zielzweig, und wählen Sie "Auschecken" aus.
Klicken Sie in der Zweigansicht mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Verlauf anzeigen " aus, um eine Registerkarte " Commitverlauf " zu öffnen.
Klicken Sie auf der Registerkarte "Verlauf " mit der rechten Maustaste auf den Commit, den Sie zur Kirschauswahl auswählen möchten, und wählen Sie " Cherry-Pick" aus. Visual Studio unterstützt nicht die Kirschauswahl mehr als einen Commit zu einem Zeitpunkt, sodass Sie diesen Schritt für jeden Commit wiederholen müssen, den Sie mit der Kirschauswahl auswählen möchten.
Visual Studio erstellt einen neuen Zielzweig-Commit, der die Änderungen aus dem kirschauswahlen Commit enthält. Wenn der Kirschauswahlvorgang nicht erfolgreich abgeschlossen ist, benachrichtigt Visual Studio Sie.
Visual Studio Team Explorer
Wählen Sie im Team-Explorer die Schaltfläche "Start " aus, und wählen Sie "Verzweigungen" aus.
Klicken Sie in der Ansicht "Zweigen " mit der rechten Maustaste auf den Zielzweig, und wählen Sie "Auschecken" aus.
Klicken Sie in der Zweigansicht mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Verlauf anzeigen " aus, um eine Registerkarte " Commitverlauf " zu öffnen.
Klicken Sie auf der Registerkarte "Verlauf " mit der rechten Maustaste auf den Commit, den Sie zur Kirschauswahl auswählen möchten, und wählen Sie " Cherry-Pick" aus. Visual Studio unterstützt nicht die Kirschauswahl mehr als einen Commit zu einem Zeitpunkt, sodass Sie diesen Schritt für jeden Commit wiederholen müssen, den Sie mit der Kirschauswahl auswählen möchten.
Visual Studio erstellt einen neuen Zielzweig-Commit, der die Änderungen aus dem kirschauswahlen Commit enthält. Wenn der Kirschauswahlvorgang nicht erfolgreich abgeschlossen ist, benachrichtigt Visual Studio Sie.
Öffnen Sie Team-Explorer, und schauen Sie sich den Zweig an, in dem Sie Änderungen an der Kirsche auswählen möchten, indem Sie die Ansicht "Verzweigungen " verwenden.
Klicken Sie mit der rechten Maustaste auf den Zweig, der die gewünschten Änderungen enthält, und wählen Sie "Verlauf anzeigen" aus.
Klicken Sie mit der rechten Maustaste auf den Commit, den Sie mit der Kirschauswahl auswählen möchten, und wählen Sie " Cherry-Pick" aus.
Visual Studio kopiert die änderungen, die in diesem Commit in eine neue in Ihrem aktuellen Zweig vorgenommen wurden.
Wiederholen Sie diesen Prozess für jeden Commit, den Sie in Ihren aktuellen Zweig übertragen müssen.
Verwenden Sie den git log Befehl, um Quellzweig-Commits auflisten. Das --oneline Flag abkürbt die Commitinformationen.
git log --oneline <source branch>
Git listet zuerst die zuletzt verwendeten Commits auf. Jede Commit-ID ist ein Teil-SHA-1-Hash, der den Commit eindeutig identifiziert. Zum 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, das Sie als Kirschauswahl auswählen möchten.
Auschecken des Zielzweigs, wenn es noch nicht ausgecheckt ist.
git checkout <target branch>
Commit, Stash oder Verwerfen von nicht freigegebenen Änderungen.
So wählen Sie ein einzelnes Commit aus:
git cherry-pick <commit ID>
Um mehrere Commits zu auswählen, trennen Sie die Commit-IDs mit Leerzeichen. Die Commits werden in der Reihenfolge angewendet, in der Sie sie eingeben:
Wenn Sie mehrere Commits auswählen, erstellt der standardmäßige Cherry-Pick-Befehl eine entsprechende Sequenz neuer Zielzweig-Commits. Um Git zu stufen und die Zielzweigänderungen nicht zu commiten, verwenden Sie das -n Flag:
git cherry-pick -n <commit1 ID> <commit2 ID>
Anschließend können Sie manuell ein einzelnes Commit erstellen, um alle Änderungen aus dem Kirschauswahlvorgang zu enthalten.
Git benachrichtigt Sie, wenn während des Kirschauswahlvorgangs Zusammenführungskonflikte auftreten. Sie können entweder die Konflikte lösen und dann ausführen git cherry-pick --continueoder ausführen, um git cherry-pick --abort den Kirschauswahlvorgang rückgängig zu machen.