Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
O Git cherry-pick copia as alterações de uma ou mais confirmações de ramificação de origem para uma ramificação de destino. Ao contrário da mesclagem ou rebaseamento, o cherry-pick permite selecionar confirmações de ramificação de origem específicas. Para cada confirmação de ramificação de origem escolhida a dedo, o Git cria uma confirmação correspondente na ramificação de destino.
Você pode escolher a dedo para lidar com estas tarefas comuns:
Implante um recurso específico de uma ramificação para outra.
Copie o trabalho que você cometeu na ramificação errada.
Aplique uma correção de bug em várias ramificações.
Para obter uma visão geral do fluxo de trabalho do Git, consulte o tutorial do Azure Repos Git.
O Azure Repos fornece suporte limitado para seleção seletiva e apenas com a finalidade de criar uma solicitação pull para aplicar um hotfix em uma ramificação de destino. Para obter mais informações, consulte Improving Azure DevOps cherry-picking.
A opção Cherry-pick no menu pull request no Azure Repos faz o seguinte:
Cria uma nova ramificação de tópico a partir da ramificação de destino da solicitação pull.
Seleciona todas as alterações da ramificação de origem da solicitação pull para a nova ramificação de tópico.
Solicita que você crie uma nova solicitação pull para mesclar a nova ramificação de tópico em outra ramificação de destino.
A interface web do GitHub não suporta escolha seletiva, mas o GitHub Desktop sim. Para obter orientação passo a passo sobre como escolher a dedo no GitHub Desktop, consulte Escolhendo uma confirmação.
O Visual Studio 2022 fornece uma experiência de controle de versão do Git usando o menu Git, Alterações do Git e por meio de menus de contexto no Gerenciador de Soluções. O Visual Studio 2019 versão 16.8 também oferece a interface de usuário do Team Explorer Git. Para obter mais informações, consulte a guia Visual Studio 2019 - Team Explorer .
Escolha Git > Manage Branches para abrir a janela Git Repository .
Na janela Repositório Git, clique com o botão direito do mouse na ramificação de destino e escolha Checkout.
Na visualização Ramos, clique com o botão direito do mouse na ramificação 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 na confirmação que deseja escolher a dedo e escolha Escolher a dedo. O Visual Studio não oferece suporte à escolha seletiva de mais de uma confirmação de cada vez, portanto, você precisará repetir esta etapa para cada confirmação que deseja selecionar.
O Visual Studio cria uma nova confirmação de ramificação de destino que contém as alterações da confirmação escolhida a dedo. Se a operação cherry-pick não for concluída com êxito, o Visual Studio irá notificá-lo.
O Visual Studio 2019 fornece uma experiência de controle de versão do Git usando o menu Git, Alterações do Git e por meio de menus de contexto no Gerenciador de Soluções.
Escolha Git > Manage Branches para abrir a janela Git Repository .
Na janela Repositório Git, clique com o botão direito do mouse na ramificação de destino e escolha Checkout.
Na visualização Ramos, clique com o botão direito do mouse na ramificação 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 na confirmação que deseja escolher a dedo e escolha Escolher a dedo. O Visual Studio não oferece suporte à escolha seletiva de mais de uma confirmação de cada vez, portanto, você precisará repetir esta etapa para cada confirmação que deseja selecionar.
O Visual Studio cria uma nova confirmação de ramificação de destino que contém as alterações da confirmação escolhida a dedo. Se a operação cherry-pick não for concluída com êxito, o Visual Studio irá notificá-lo.
O Visual Studio 2019 versão 16.8 e versões posteriores fornece uma experiência de controle de versão do Git enquanto mantém a interface do usuário do Team Explorer Git. Para usar o Team Explorer, desmarque Ferramentas>Opções>Visualizar recursos>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 Início e escolha Ramos.
Na visualização Ramos, clique com o botão direito do mouse na ramificação de destino e escolha Checkout.
Na visualização Ramos, clique com o botão direito do mouse na ramificação 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 na confirmação que deseja escolher a dedo e escolha Escolher a dedo. O Visual Studio não oferece suporte à escolha seletiva de mais de uma confirmação de cada vez, portanto, você precisará repetir esta etapa para cada confirmação que deseja selecionar.
O Visual Studio cria uma nova confirmação de ramificação de destino que contém as alterações da confirmação escolhida a dedo. Se a operação cherry-pick não for concluída com êxito, o Visual Studio irá notificá-lo.
Use o git log comando para listar confirmações de ramificação de origem. O --oneline sinalizador abrevia as informações de confirmação.
git log --oneline <source branch>
O Git lista primeiro os commits mais recentes. Cada ID de 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 o ID da confirmação que você deseja escolher.
Verifique a ramificação de destino, se ainda não tiver feito check-out.
git checkout <target branch>
Confirme, armazene ou descarte quaisquer alterações não confirmadas.
Para escolher uma única confirmação:
git cherry-pick <commit ID>
Para escolher várias confirmações, separe as IDs de confirmação com espaços. Os commits serão aplicados na ordem em que você os inserir:
Quando você escolhe várias confirmações, o comando cherry-pick padrão cria uma sequência correspondente de novas confirmações de ramificação de destino. Para dizer ao Git para preparar e não confirmar as alterações de ramificação de destino, use o -n sinalizador:
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 escolha seletiva.
O Git irá notificá-lo se houver conflitos de mesclagem durante a operação de escolha seletiva. Você pode resolver os conflitos e, em seguida, executar git cherry-pick --continueou executar git cherry-pick --abort para desfazer a operação de escolha seletiva.