Um fork é uma cópia de um repositório que você tem, conectada ao repositório original, chamado de 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.
- Manter seus próprias ramificações, issues e pull requests separados do projeto upstream.
Forks e ramificações
Forks e ramificações oferecem um local para trabalhar em alterações, 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 upstream ou quando não tiver permissão de escrita.
Como um fork é seu próprio repositório, ele oferece mais independência do que um 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 permanece em segundo plano: você cria um fork de um repositório, trabalha em sua cópia e abre um pull request quando estiver pronto para propor suas alterações.