Skip to main content

Garfos

Entenda como as bifurcações permitem a colaboração independente criando repositórios separados conectados ao original, com configurações e permissões distintas.

Forks são repositórios que se originam como cópias de outro repositório, conhecido como repositório upstream. Um fork tem suas próprias configurações e permissões, mas permanece conectado ao repositório upstream.

Ao visualizar um repositório bifurcado em GitHub, o repositório upstream é indicado abaixo do nome do fork.

O que torna os forks distintos dos branches

Uma ramificação faz parte de um repositório. Um fork é um repositório separado com suas próprias configurações e espaço de colaboração.

Cada bifurcação pode ter sua própria:

  • Branches
  • Membros e discussões
  • Problemas e pull requests
  • Ações e projetos
  • Marcas, rótulos e wikis

Quais repositórios podem ser clonados?

Você poderá criar forks de um repositório privado ou interno para sua conta pessoal ou para uma organização em GitHub, no qual você tem permissão para criar repositórios, contanto que as configurações do repositório e as políticas corporativas permitam a criação de forks.

Em geral, você pode criar fork em qualquer repositório público para sua conta pessoal ou para uma organização em que tenha permissão para criar repositórios, a menos que seja membro de um empresa com usuários gerenciados.

As políticas de repositório, organização e empresa podem limitar se os repositórios podem ser bifurcados e onde as bifurcações podem ser criadas. Para repositórios privados e internos, o acesso a forks também depende da visibilidade do repositório, da participação na organização e das configurações dos administradores.

Se você for membro de um empresa com usuários gerenciados, restrições adicionais se aplicam aos repositórios que você pode bifurcar.

Os Contas de usuário gerenciadas não podem criar fork de repositórios de fora da empresa. Eles podem criar fork de repositórios privados ou internos pertencentes a organizações da empresa em seu namespace de conta de usuário ou em outras organizações pertencentes à empresa, conforme especificado pela política corporativa. Consulte Sobre o Enterprise Managed Users.

Consulte Gerenciando a política de bifurcação da sua organização e Aplicar as políticas de gerenciamento do repositório na sua empresa.

Visibilidade de bifurcações

A visibilidade de uma bifurcação está vinculada à rede de repositórios do repositório upstream. Os forks de repositórios públicos são públicos, e os forks de repositórios privados são privados. Bifurcações de repositórios internos são privadas. Você não pode alterar a visibilidade de um fork de forma independente.

Todos os repositórios em uma rede de repositório compartilham a mesma configuração de visibilidade. Uma rede de repositórios inclui o repositório upstream, suas bifurcações e as bifurcações destas. Consulte Entender conexões entre repositórios.

Excluir um repositório ou alterar sua visibilidade pode afetar a rede. Se você excluir uma bifurcação, as contribuições de código dessa bifurcação poderão permanecer acessíveis à rede do repositório.

O que acontece com os forks quando um repositório é excluído ou tem sua visibilidade alterada

Aviso

  • Se você remover o acesso de uma pessoa a um repositório privado, todas as suas bifurcações desse repositório privado serão excluídas. Os clones locais do repositório privado são mantidos. Se o acesso de uma equipe a um repositório privado for revogado ou uma equipe com acesso a um repositório privado for excluída e os membros da equipe não tiverem acesso ao repositório por meio de outra equipe, as bifurcações privadas do repositório serão excluídas.
  • Você é responsável por garantir que as pessoas que perderam o acesso a um repositório excluam qualquer informação confidencial ou de propriedade intelectual.
  • Pessoas com permissões de administrador em um repositório privado ou interno podem impedir forks desse repositório, e os proprietários da organização podem impedir forks de qualquer repositório privado ou interno da organização. Para saber mais, confira Gerenciando a política de bifurcação da sua organização e Gerenciando a política de bifurcação para seu repositório.

As alterações de visibilidade podem separar forks em novas redes de repositórios para que os proprietários de forks existentes possam continuar trabalhando sem perda inesperada de acesso.

AçãoEfeito em forks
Um repositório privado é excluídoSuas bifurcações privadas também são excluídas.
Um repositório público é excluídoUma bifurcação pública ativa torna-se o novo repositório upstream da rede.
Um repositório público é tornado privadoSuas bifurcações públicas permanecem públicas em uma rede separada.
Um repositório privado é tornado públicoOs forks privados permanecem privados, mas se desconectam em redes privadas separadas.
Um repositório interno altera a visibilidadeOs forks de organizações ou contas pessoais permanecem privados.

Alterar um repositório público para privado também pode afetar estrelas, observadores, grafo Dependabot alertsde dependência e code scanning disponibilidade. Examine cuidadosamente as configurações de visibilidade do repositório antes de alterá-las.

Permissões de bifurcações

As bifurcações privadas herdam a estrutura de permissões do repositório ascendente. Isso ajuda os proprietários de repositórios privados a manter o controle sobre seus códigos. Por exemplo, se o repositório ascendente é privado e fornece acesso de leitura/gravação a uma equipe, essa equipe terá acesso de leitura/gravação para qualquer bifurcação do repositório privado ascendente. Somente as permissões de equipe (não as permissões individuais) são herdadas por forks privados.

Observação

Quando você altera as permissões base de uma organização, as permissões para bifurcações privadas não são atualizadas automaticamente. Para obter mais informações, confira Definindo permissões base para uma organização.

Os forks públicos não herdam a estrutura de permissões do repositório upstream. Os proprietários de forks controlam o acesso aos seus forks, mas as redes de repositórios ainda compartilham dados do Git. As confirmações enviadas por push para qualquer repositório em uma rede podem ser acessíveis de outros repositórios nessa rede, incluindo o repositório upstream.

Ao fazer um fork de um repositório público para sua conta pessoal, você pode permitir que os mantenedores do repositório de origem enviem alterações para a branch do pull request. Isso pode ajudar os mantenedores a atualizar sua ramificação, executar testes ou resolver pequenos problemas antes de mesclar. Você não pode conceder permissão de push a um fork pertencente a uma organização. Consulte Allowing changes to a pull request branch created from a fork.

Regras de push para repositórios derivados

As regras de push se aplicam a toda a rede de bifurcação de um repositório, garantindo que cada ponto de entrada do repositório esteja protegido. Por exemplo, se você bifurcar um repositório que tenha conjuntos de regras por push habilitados, os mesmos conjuntos de regras por push também se aplicarão ao repositório bifurcado.

Para um repositório bifurcado, as únicas pessoas que têm permissões de bypass para uma regra de push são as pessoas que têm permissões de bypass no repositório raiz.

Consulte Sobre os conjuntos de regras.

Considerações importantes sobre segurança

Forks são ferramentas poderosas de colaboração, mas podem expor código e histórico de formas fáceis de não perceber.

  • Os forks têm permissões próprias e separadas do repositório de origem.
  • Os proprietários de um repositório upstream podem ler todos os forks na rede de repositórios.
  • Os proprietários da organização podem ter acesso administrativo a forks criados em espaços de nomes pessoais.
  • Remover o acesso de alguém ao repositório de origem nem sempre exclui forks em outras organizações.
  • Os commits podem permanecer acessíveis na rede do repositório mesmo após a exclusão de um fork.

Antes de permitir forks para trabalho sensível, revise o modelo de permissões e visibilidade do seu repositório ou da sua organização.

Bifurcações em uma organização

Forks dentro da mesma organização copiam as configurações de colaboradores e equipes do repositório upstream. A organização controla as permissões para esses forks, e as equipes visíveis existentes podem manter o acesso.

Bifurcações em uma empresa

Repositórios internos dão suporte a um único nível de bifurcação. Não é possível bifurcar uma bifurcação privada de um repositório interno. Isso mantém o acesso e o gerenciamento mais simples para repositórios visíveis em uma empresa.