Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
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
Eine Übersicht über den Git-Workflow finden Sie im Azure Repos-Git-Tutorial.
Voraussetzungen
| Kategorie |
Anforderungen |
|
Projektzugriff |
Mitglied eines Projekts. |
|
Erlaubnisse |
- Code in privaten Projekten anzeigen: Mindestens einfacher Zugriff. - Klonen oder Mitwirken an Code in privaten Projekten: Mitglied der Sicherheitsgruppe "Mitwirkende" oder entsprechende Berechtigungen im Projekt. – Legen Sie Verzweigungs- oder Repositoryberechtigungen fest: Berechtigungen für die Verzweigung oder das Repository verwalten . - Standardverzweigung ändern: Bearbeiten von Richtlinienberechtigungen für das Repository. - Importieren eines Repositorys: Mitglied der Sicherheitsgruppe "Projektadministratoren " oder "Git-Projektebene Repository erstellen"-Berechtigungssatz auf "Zulassen". Weitere Informationen finden Sie unter Festlegen von Git-Repositoryberechtigungen. |
|
Dienste |
Repos aktiviert. |
|
Werkzeuge |
Wahlfrei. Verwenden Sie az repos-Befehle : Azure DevOps CLI. |
Hinweis
In öffentlichen Projekten haben Benutzer mit Stakeholder-Zugriff vollzugriff auf Azure Repos, einschließlich Anzeigen, Klonen und Beitragen zu Code.
| Kategorie |
Anforderungen |
|
Projektzugriff |
Mitglied eines Projekts. |
|
Erlaubnisse |
- Code anzeigen: Mindestens einfacher Zugriff. - Klonen oder Zum Code beitragen: Mitglied der Sicherheitsgruppe "Mitwirkende " oder entsprechende Berechtigungen im Projekt. |
|
Dienste |
Repos aktiviert. |
Ausführen von Cherry-Pick für einen Commit
Azure Repos
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.
Ein schrittweises Tutorial finden Sie unter Erstellen eines neuen Pull Requests mit Cherry-Pick.
GitHub
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, 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:
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
Verwenden Sie die ^..Punktbereichsnotation, um einen inklusiven Bereich von Commits zu wählen:
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
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.
Nächste Schritte
Verwandte Artikel