Implementar o fluxo de trabalho de fork
Uma bifurcação é uma cópia de um repositório. A criação de um fork de um repositório permite-lhe realizar alterações livremente sem afetar o projeto original.
Mais comumente, os forks são usados para propor alterações no projeto de outra pessoa ou usar o projeto de outra pessoa como ponto de partida para a sua ideia.
Um fork é uma cópia completa de um repositório, incluindo todos os ficheiros, commits 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 partilhar essas alterações, é fácil contribuir de volta usando pull requests.
O que há em um garfo?
Uma bifurcação começa com todo o conteúdo do repositório upstream (original). Você pode incluir todas as ramificações ou limitá-las apenas à ramificação padrão ao criar uma bifurcação.
Observações importantes:
- Nenhuma das permissões, políticas ou pipelines de construção são copiadas.
- 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 os carregue.
Partilha de código entre ramificações
Você pode criar pull requests em qualquer direção: de um fork para um upstream ou de um upstream para um fork. A abordagem mais comum é da bifurcação para a montante.
As permissões, políticas, compilações e itens de trabalho do repositório de destino serão aplicados à solicitação pull.
Escolher entre ramos e garfos
Small Teams (2-5 desenvolvedores): Recomendamos trabalhar em um único repositório. Todos devem trabalhar em uma ramificação de tópico, e a ramificação principal deve ser protegida com políticas de ramificação.
Equipes maiores: À medida que sua equipe cresce, você pode se ver superando esse arranjo e preferir mudar para um fluxo de trabalho de bifurcação.
Quando usar garfos:
- Seu repositório tem muitos contribuidores casuais ou pouco frequentes (como um projeto de código aberto).
- Apenas colaboradores principais têm direitos de 'commit' direto no seu repositório.
- Você quer que colaboradores de fora da equipe principal trabalhem a partir de uma bifurcação.
- Você deseja isolar as alterações até ter a chance de revisar o trabalho.
O fluxo de trabalho de bifurcação
Aqui estão os passos básicos para o fluxo de trabalho de ramificação:
- Criar um fork.
- Clone localmente.
- Faça suas alterações localmente e envie-as para uma filial.
- Crie e conclua uma solicitação pull para upstream.
- Sincronize a sua bifurcação com a mais recente a partir do upstream.
Passo 1: Criar a bifurcação
- Navegue até o repositório que deseja bifurcar e escolha "Fork".
- 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.
- Escolha as reticências e, em seguida, o "Fork" para criar o fork.
Observação
Para criar um fork, deve ter a permissão de Criar Repositório no seu projeto escolhido. Recomendamos que você crie um projeto dedicado para forks onde todos os colaboradores tenham a permissão Criar repositório.
Passo 2: Clone 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.
git clone {your_fork_url}
For convenience, after cloning, you'll want to add the upstream repository (where you forked from) as a remote named upstream:
```bash
git remote add upstream {upstream_url}
Etapa 3: Fazer e enviar alterações via push
É possível trabalhar diretamente na branch principal - afinal, este fork é a sua cópia do repositório. No entanto, recomendamos que você ainda trabalhe em uma ramificação temática porque:
- Ele permite que você mantenha vários fluxos de trabalho independentes ao mesmo tempo.
- Reduz a confusão posteriormente quando desejas sincronizar as alterações no teu fork.
Faça e confirme as alterações como faria normalmente. Quando terminar as alterações, empurre-as para a origem (a sua bifurcação).
Etapa 4: Criar e concluir uma solicitação pull
Abra uma solicitação de pull request da sua ramificação para o repositório upstream. Todas as políticas, revisores necessários e compilações serão aplicadas no repositório upstream. Quando todas as políticas forem satisfeitas, a solicitação pull poderá ser concluída e as alterações se tornarão uma parte permanente do repositório upstream.
Importante
Qualquer pessoa com permissão de Ler pode abrir uma solicitação pull para upstream. Se uma pipeline de compilação de pedido de pull estiver configurada, a compilação será executada contra o código introduzido na ramificação.
Passo 5: Sincronize o seu fork com a versão mais recente
Quando sua solicitação pull for aceita no upstream, convém certificar-se de que sua bifurcação reflita 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
Benefícios do fluxo de trabalho de fork
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.
Esta abordagem prevê:
- Segurança: As alterações são isoladas até revisão.
- Colaboração: várias pessoas podem trabalhar em diferentes recursos simultaneamente.
- Qualidade: Todas as alterações passam pelo mesmo processo de revisão.
- Flexibilidade: os colaboradores não precisam de acesso de gravação ao repositório principal.