Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git cherry-pick copia le modifiche da uno o più commit del ramo di origine in un ramo di destinazione. A differenza di merge o rebase, cherry-pick consente di selezionare commit di rami di origine specifici. Per ogni commit del ramo di origine selezionato, Git crea un commit corrispondente nel ramo di destinazione.
È possibile scegliere cherry-pick per affrontare queste attività comuni:
Distribuire una funzionalità specifica da un ramo a un altro.
Copiare il lavoro di cui è stato eseguito il commit nel ramo errato.
Applicare una correzione di bug in più rami.
Per una panoramica del flusso di lavoro Git, vedere Esercitazione su Git di Azure Repos.
Azure Repos offre un supporto limitato per il cherry-pick e solo allo scopo di creare una richiesta pull per applicare un hotfix in un ramo di destinazione. Per altre informazioni, vedere Miglioramento del cherry-pick di Azure DevOps.
L'opzione Cherry-pick nel menu di richiesta pull in Azure Repos esegue le operazioni seguenti:
Crea un nuovo ramo di argomento dal ramo di destinazione della richiesta pull.
Cherry-seleziona tutte le modifiche dal ramo di origine della richiesta pull al nuovo ramo di argomento.
Richiede di creare una nuova richiesta pull per unire il nuovo ramo di argomento in un altro ramo di destinazione.
L'interfaccia Web di GitHub non supporta cherry-pick, ma GitHub Desktop lo fa. Per istruzioni dettagliate su come scegliere cherry-pick in GitHub Desktop, vedere Cherry-pick a commit.
Visual Studio 2022 offre un'esperienza di controllo della versione Git usando il menu Git, Le modifiche Git e tramite i menu di scelta rapida in Esplora soluzioni. Visual Studio 2019 versione 16.8 offre anche l'interfaccia utente Git di Team Explorer . Per altre informazioni, vedere la scheda Visual Studio 2019 - Team Explorer .
Scegliere Git Manage Branch (Gestisci rami Git>) per aprire la finestra Repository Git.
Nella finestra Repository Git fare clic con il pulsante destro del mouse sul ramo di destinazione e scegliere Checkout .In the Git Repository window, right-click the target branch and choose Checkout.
Nella visualizzazione Rami fare clic con il pulsante destro del mouse sul ramo di origine e scegliere Visualizza cronologia per aprire una scheda Cronologia commit.
Nella scheda Cronologia fare clic con il pulsante destro del mouse sul commit che si desidera selezionare e scegliere Cherry-Pick. Visual Studio non supporta la selezione di ciliegie più di un commit alla volta, quindi è necessario ripetere questo passaggio per ogni commit che si vuole selezionare.
Visual Studio crea un nuovo commit del ramo di destinazione che contiene le modifiche dal commit selezionato per cherry. Se l'operazione cherry-pick non viene completata correttamente, Visual Studio invierà una notifica.
Visual Studio 2019 offre un'esperienza di controllo della versione Git usando il menu Git, Le modifiche Git e i menu di scelta rapida in Esplora soluzioni.
Scegliere Git Manage Branch (Gestisci rami Git>) per aprire la finestra Repository Git.
Nella finestra Repository Git fare clic con il pulsante destro del mouse sul ramo di destinazione e scegliere Checkout .In the Git Repository window, right-click the target branch and choose Checkout.
Nella visualizzazione Rami fare clic con il pulsante destro del mouse sul ramo di origine e scegliere Visualizza cronologia per aprire una scheda Cronologia commit.
Nella scheda Cronologia fare clic con il pulsante destro del mouse sul commit che si desidera selezionare e scegliere Cherry-Pick. Visual Studio non supporta la selezione di ciliegie più di un commit alla volta, quindi è necessario ripetere questo passaggio per ogni commit che si vuole selezionare.
Visual Studio crea un nuovo commit del ramo di destinazione che contiene le modifiche dal commit selezionato per cherry. Se l'operazione cherry-pick non viene completata correttamente, Visual Studio invierà una notifica.
Visual Studio 2019 versione 16.8 e versioni successive offre un'esperienza di controllo della versione Git mantenendo al tempo stesso l'interfaccia utente git di Team Explorer . Per usare Team Explorer, deselezionare Strumenti>Opzioni>anteprima Funzionalità>Nuova esperienza utente Git dalla barra dei menu. È possibile usare le funzionalità Git da entrambe le interfacce in modo intercambiabile.
In Team Explorer selezionare il pulsante Home e scegliere Rami.
Nella visualizzazione Rami fare clic con il pulsante destro del mouse sul ramo di destinazione e scegliere Checkout .In the Branch view, right-click the target branch and choose Checkout.
Nella visualizzazione Rami fare clic con il pulsante destro del mouse sul ramo di origine e scegliere Visualizza cronologia per aprire una scheda Cronologia commit.
Nella scheda Cronologia fare clic con il pulsante destro del mouse sul commit che si desidera selezionare e scegliere Cherry-Pick. Visual Studio non supporta la selezione di ciliegie più di un commit alla volta, quindi è necessario ripetere questo passaggio per ogni commit che si vuole selezionare.
Visual Studio crea un nuovo commit del ramo di destinazione che contiene le modifiche dal commit selezionato per cherry. Se l'operazione cherry-pick non viene completata correttamente, Visual Studio invierà una notifica.
Usare il git log comando per elencare i commit del ramo di origine. Il --oneline flag abbrevia le informazioni di commit.
git log --oneline <source branch>
Git elenca prima i commit più recenti. Ogni ID commit è un hash SHA-1 parziale che identifica in modo univoco il commit. Ad esempio:
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.
Prendere nota dell'ID del commit che si desidera selezionare.
Controllare il ramo di destinazione, se non è già estratto.
git checkout <target branch>
Eseguire il commit, lo stash o rimuovere le modifiche di cui non è stato eseguito il commit.
Per scegliere un singolo commit:
git cherry-pick <commit ID>
Per selezionare più commit, separare gli ID commit con gli spazi. I commit verranno applicati nell'ordine in cui vengono immessi:
Quando si selezionano più commit, il comando cherry-pick predefinito crea una sequenza corrispondente di nuovi commit del ramo di destinazione. Per indicare a Git di eseguire la fase e non eseguire il commit delle modifiche del ramo di destinazione, usare il -n flag :
git cherry-pick -n <commit1 ID> <commit2 ID>
È quindi possibile creare manualmente un singolo commit per contenere tutte le modifiche apportate dall'operazione cherry-pick.
Git invierà una notifica in caso di conflitti di unione durante l'operazione cherry-pick. È possibile risolvere i conflitti ed eseguire git cherry-pick --continueoppure eseguire git cherry-pick --abort per annullare l'operazione cherry-pick.