Implementar o fluxo de trabalho de bifurcação

Concluído

Uma bifurcação é uma cópia de um repositório. A bifurcação de um repositório permite que você experimente alterações sem afetar o projeto original livremente.

Mais comumente, os forks são usados para propor alterações no projeto de outra pessoa. Ou use o projeto de outra pessoa como ponto de partida para a sua ideia.

Uma bifurcação é uma cópia completa de um repositório, incluindo todos os arquivos, confirmações e (opcionalmente) ramificações.

As bifurcações são uma ótima maneira de dar suporte a um fluxo de trabalho de origem interna: você pode criar uma bifurcação para sugerir alterações quando não tiver permissão para escrever diretamente no projeto original.

Quando estiver pronto para compartilhar essas alterações, é fácil contribuir com elas usando solicitações pull.

O que há em um garfo?

Uma bifurcação começa com todo o conteúdo do seu repositório upstream (original).

Você pode incluir todas as ramificações ou limitá-las apenas à ramificação padrão ao criar uma bifurcação.

Nenhuma das permissões, políticas ou pipelines de compilação são aplicados.

A nova bifurcação age como se alguém clonasse o repositório original e, em seguida, o enviasse para um novo repositório vazio.

Depois que uma bifurcação é criada, novos arquivos, pastas e ramificações não são compartilhados entre os repositórios, a menos que uma solicitação pull (PR) os carregue.

Compartilhamento de código entre bifurcações

Você pode criar RPs em qualquer direção: da bifurcação para o upstream ou do upstream para o fork.

A abordagem mais comum será da forquilha para a montante.

As permissões, políticas, compilações e itens de trabalho do repositório de destino serão aplicados ao PR.

Escolher entre ramos e garfos

Para uma equipe pequena (2-5 desenvolvedores), recomendamos trabalhar em um único repositório.

Todos devem trabalhar em uma ramificação tetópica, e a principal deve ser protegida com políticas de ramificação.

À medida que sua equipe se torna mais significativa, você pode acabar superando esse arranjo e preferir mudar para um fluxo de trabalho de bifurcação.

Recomendamos o fluxo de trabalho de bifurcação se o repositório tiver muitos comitês casuais ou pouco frequentes (como um projeto de código aberto).

Normalmente, apenas os principais colaboradores do seu projeto têm direitos de confirmação direta no repositório.

Ajudaria se você pedisse a colaboradores de fora desse conjunto central de pessoas para trabalhar a partir de uma bifurcação do repositório.

Além disso, isolará as mudanças deles da sua até que você tenha tido a chance de examinar o trabalho.

O fluxo de trabalho de bifurcação

  • Crie uma bifurcação.
  • Clone localmente.
  • Faça suas alterações localmente e envie-as para uma filial.
  • Crie e complete um PR para upstream.
  • Sincronize a sua bifurcação com a mais recente a partir do upstream.

Criar a bifurcação

  1. Navegue até o repositório para fork e escolha fork.
  2. Especifique um nome e escolha o projeto onde deseja que a bifurcação seja criada. Se o repositório contiver muitas ramificações de tópico, recomendamos que você bifurque apenas a ramificação padrão.
  3. Escolha as reticências e, em seguida, Fork para criar a bifurcação.

Diagrama mostrando Criar a bifurcação.

Nota

Você deve ter a permissão Criar repositório no projeto escolhido para criar uma bifurcação. Recomendamos que você crie um projeto dedicado para forks onde todos os colaboradores tenham a permissão Criar repositório. Para obter um exemplo de concessão dessa permissão, consulte Definir permissões de repositório Git.

Clonar o seu fork localmente

Quando a bifurcação estiver pronta, clone-a usando a linha de comando ou um IDE como o Visual Studio. O garfo será o seu controle remoto de origem.

Por conveniência, após a clonagem, você desejará adicionar o repositório upstream (de onde você se bifurcou) como um remoto chamado upstream.

git remote add upstream {upstream_url}

Fazer e enviar alterações por push

É possível trabalhar diretamente no principal - afinal, este garfo é a sua cópia do repo.

No entanto, recomendamos que você ainda trabalhe em um ramo tópico.

Ele permite que você mantenha vários fluxos de trabalho independentes simultaneamente.

Além disso, reduz a confusão mais tarde quando você deseja sincronizar as alterações na bifurcação.

Faça e confirme as alterações como faria normalmente. Quando terminar as alterações, empurre-as para a origem (a sua bifurcação).

Criar e concluir um RP

Abra um pull request da sua bifurcação para o upstream. Todas as políticas necessárias, revisores e compilações serão aplicadas no repositório upstream. Uma vez satisfeitas todas as políticas, o PR pode ser concluído e as alterações tornam-se uma parte permanente do repositório a montante.

Diagrama mostrando Criar e concluir um PR.

Importante

Qualquer pessoa com o permissão de Ler pode abrir um PR para upstream. Se um pipeline de compilação PR estiver configurado, a compilação será executada em relação ao código introduzido na bifurcação.

Sincronize a sua bifurcação com a mais recente

Quando você tiver seu PR aceito no upstream, você vai querer ter certeza de que seu garfo reflete o estado mais recente do repositório.

Recomendamos rebasear-se no ramo principal do upstream (assumindo que o principal é o ramo de desenvolvimento principal).

git fetch upstream main
git rebase upstream/main
git push origin

O fluxo de trabalho de bifurcação permite isolar as alterações do repositório principal até que você esteja pronto para integrá-las. Quando você estiver pronto, integrar o código é tão fácil quanto concluir uma solicitação pull.