Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
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.
- Copiar o trabalho confirmado no branch errado.
- Aplicar uma correção de bug em vários branches.
Para obter uma visão geral do fluxo de trabalho do Git, consulte Tutorial do Git do Azure Repos.
Pré-requisitos
| Categoria |
Requirements |
|
Acesso ao Projeto |
Membro de um projeto. |
|
Permissões |
- Exibir código em projetos privados: pelo menos acesso básico . - Clonar ou contribuir para o código em projetos privados: membro do grupo de segurança Colaboradores ou permissões correspondentes no projeto. - Definir permissões de branch ou repositório: gerenciar permissões para o branch ou repositório. - Alterar o branch padrão: editar permissões de políticas para o repositório. - Importar um repositório: membro do grupo de segurança Administradores do Projeto ou da permissão Criar repositório no nível do projeto do Git definida como Permitir. Para obter mais informações, consulte Definir permissões de repositório Git. |
|
Serviços |
Repositórios habilitados. |
|
Ferramentas |
Optional. Use comandos az repos: CLI do Azure DevOps. |
Observação
Em projetos públicos, os usuários com acesso ao Stakeholder têm acesso total ao Azure Repos, incluindo exibição, clonagem e contribuição para o código.
| Categoria |
Requirements |
|
Acesso ao Projeto |
Membro de um projeto. |
|
Permissões |
- Exibir código: no mínimo acesso básico. - Clonar ou contribuir com o código: membro do grupo de segurança Colaboradores ou permissões correspondentes no projeto. |
|
Serviços |
Repositórios habilitados. |
Cherry-pick uma confirmação
Azure Repos
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.
Para obter um tutorial passo a passo, consulte Criar uma nova solicitação de pull com cherry-pick.
GitHub
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 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:
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
Para escolher um intervalo inclusivo de confirmações, use a notação de ^..intervalo de pontos:
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
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.
Próximas etapas
Artigos relacionados