Um fork é uma cópia de um repositório que você possui, que permanece conectada ao repositório original, conhecido como repositório upstream. Um fork permite que você faça alterações no seu próprio espaço sem afetar o projeto original e proponha essas alterações de volta com um pull request.
Por que usar um fork
Um fork oferece um espaço independente para trabalhar sem perder a conexão com o projeto original. Forks são úteis quando você deseja:
- Contribua para um projeto ao qual você não tem permissão de escrita.
- Experimente as alterações sem afetar o repositório upstream.
- Explore uma nova direção que pode se tornar independente posteriormente.
- Mantenha suas próprias ramificações, problemas e solicitações de pull separadas do projeto upstream.
Bifurcações e ramificações
Bifurcações e ramificações oferecem um espaço para você trabalhar em mudanças, mas funcionam de maneiras diferentes:
- Um branch reside dentro de um único repositório. Use uma branch quando você tiver permissão de escrita e estiver colaborando em um repositório compartilhado.
- Um fork é um repositório separado com suas próprias configurações, permissões e espaço de colaboração. Use um fork quando precisar de independência do repositório original ou quando não tiver permissão de gravação.
Como uma bifurcação é seu próprio repositório, ela dá a você mais independência do que uma ramificação. Como ele permanece conectado ao repositório upstream, suas alterações ainda podem fluir de volta por meio de solicitações de pull.
Como os forks se conectam ao repositório upstream
Um fork compartilha seu histórico com o repositório upstream, assim os dois podem trocar alterações por meio de pull requests. Uma bifurcação também tem sua própria visibilidade e permissões, que estão vinculadas ao repositório upstream e à rede de repositório à qual pertence.
Para a maioria dos colaboradores, essa conexão fica em segundo plano: você faz um fork de um repositório, trabalha na sua cópia e abre um pull request quando está pronto para propor suas alterações.