Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
O cherry-pick do Git copia as alterações de uma ou mais confirmações de branch de origem para um branch de destino. Ao contrário de mesclar ou trocar base, o cherry-pick permite que você selecione confirmações de branch de origem específicas. Para cada confirmação de branch de origem escolhida, o Git cria uma confirmação correspondente no branch de destino.
É possível escolher para lidar com estas tarefas comuns:
Implantar um recurso específico de um branch para outro.
O Azure Repos fornece suporte limitado para o cherry-picking e apenas para criar uma solicitação de pull para aplicar uma correção em um branch de destino. Para obter mais informações, consulte Aprimoramento do cherry-picking do Azure DevOps.
A opção Cherry-pick no menu de solicitação de pull no Azure Repos:
Cria um novo branch do tópico do branch de destino da solicitação de pull.
Faça cherry-pick em todas as alterações do branch de origem da solicitação de pull para o novo branch de tópico.
Solicita que você crie uma nova solicitação de pull para mesclar o novo branch de tópico em outro branch de destino.
A interface da Web do GitHub não é compatível com cherry-picking, mas com o GitHub Desktop. Para obter instruções de como escolher cherry-pick no GitHub Desktop, consulte Cherry-picking uma confirmação.
O Visual Studio 2022 fornece uma experiência de controle de versão do Git usando o menu Git, as Alterações do Git e através dos menus de contexto no Gerenciador de Soluções. O Visual Studio 2019, versão 16.8, também oferece a interface do usuário do Git do Team Explorer. Para saber mais, consulte a guia Visual Studio 2019 - Team Explorer.
Escolha Gerenciar Branches do Git > para abrir a janela Repositório do Git.
Na janela Repositório do Git, clique com o botão direito do mouse no branch de destino e selecione Check-out.
No modo de exibição Branches, clique com o botão direito do mouse no branch de origem e escolha Exibir histórico para abrir uma guia Histórico de confirmação.
Na guia Histórico, clique com o botão direito do mouse em confirmar se você deseja fazer cherry-pick e selecione Cherry-Pick. O Visual Studio não oferece suporte a mais de uma confirmação por vez, portanto, você precisa repetir essa etapa para cada confirmação selecionada.
O Visual Studio cria uma nova confirmação de branch de destino que contém as alterações do confirmação do cherry-pick Se a operação de cherry-pick não for concluída com êxito, o Visual Studio envia uma notificação a você.
O Visual Studio 2019 fornece uma experiência de controle de versão do Git usando o menu Git, as Alterações do Git e através dos menus de contexto no Gerenciador de Soluções.
Escolha Gerenciar Branches do Git > para abrir a janela Repositório do Git.
Na janela Repositório do Git, clique com o botão direito do mouse no branch de destino e selecione Check-out.
No modo de exibição Branches, clique com o botão direito do mouse no branch de origem e escolha Exibir histórico para abrir uma guia Histórico de confirmação.
Na guia Histórico, clique com o botão direito do mouse em confirmar se você deseja fazer cherry-pick e selecione Cherry-Pick. O Visual Studio não oferece suporte a mais de uma confirmação por vez, portanto, você precisa repetir essa etapa para cada confirmação selecionada.
O Visual Studio cria uma nova confirmação de branch de destino que contém as alterações do confirmação do cherry-pick Se a operação de cherry-pick não for concluída com êxito, o Visual Studio envia uma notificação a você.
O Visual Studio 2019 versão 16.8 e versões posteriores fornece uma experiência de controle de versão do Git, mantendo a interface do usuáriodo Team Explorer Git. Para usar o Team Explorer, desmarque Ferramentas>Opções>Versão prévia do recurso>Nova experiência do usuário do Git na barra de menus. Você pode usar os recursos do Git de qualquer interface de forma intercambiável.
No Team Explorer, selecione o botão Página Inicial e escolha Branches.
No modo de exibição Branches, clique com o botão direito do mouse no branch de destino e selecione Check-out.
No modo de exibição Branches, clique com o botão direito do mouse no branch de origem e escolha Exibir histórico para abrir uma guia Histórico de confirmação.
Na guia Histórico, clique com o botão direito do mouse em confirmar se você deseja fazer cherry-pick e selecione Cherry-Pick. O Visual Studio não oferece suporte a mais de uma confirmação por vez, portanto, você precisa repetir essa etapa para cada confirmação selecionada.
O Visual Studio cria uma nova confirmação de branch de destino que contém as alterações do confirmação do cherry-pick Se a operação de cherry-pick não for concluída com êxito, o Visual Studio envia uma notificação a você.
Use o comando git log para listar confirmações de branch de origem. O sinalizador --oneline abrevia as informações de confirmação.
git log --oneline <source branch>
O Git lista primeiro as confirmações mais recentes. Cada ID da confirmação é um hash SHA-1 parcial que identifica exclusivamente a confirmação. Por exemplo:
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.
Anote a ID da confirmação que você deseja fazer cherry-pick.
Faça check-out do branch de destino, se ainda não tiver feito.
git checkout <target branch>
Commit, entrada stash ou descarte as alterações não confirmadas.
Para escolher uma única confirmação:
git cherry-pick <commit ID>
Para fazer cherry-pick de várias confirmações, separe as IDs de confirmação com espaços. As confirmações serão aplicadas na ordem inserida:
Quando você escolhe várias confirmações, o comando cherry-pick padrão cria uma sequência correspondente de novas confirmações de branch de destino. Para instruir o Git a preparar e não confirmar as alterações do branch de destino, use o sinalizador -n:
git cherry-pick -n <commit1 ID> <commit2 ID>
Em seguida, você pode criar manualmente uma única confirmação para conter todas as alterações da operação de cherry-pick.
O Git notificará você se houver conflitos de mesclagem durante a operação de cherry-pick. É possível resolver os conflitos e executar git cherry-pick --continue ou git cherry-pick --abort desfazer a operação de cherry-pick.