Sobre bifurcações
Um fork é um novo repositório que compartilha configurações de código e visibilidade com o repositório "upstream" original. Os forks geralmente são usados para iterar ideias ou alterações antes de serem propostas de volta para o repositório upstream, como em projetos código aberto ou quando um usuário não tem acesso de gravação ao repositório upstream. Para saber mais, confira Trabalhar com bifurcações.
Proponha mudanças no projeto de outra pessoa
Por exemplo, você pode usar forks para propor alterações relacionadas à correção de erro. Em vez de registrar um erro encontrado, você pode:
- Faça um fork do repositório.
- Faça a correção.
- Enviar uma pull request ao proprietário do projeto.
Use o projeto de outra pessoa como ponto de partida para sua própria ideia.
O software de código aberto baseia-se na ideia de que ao compartilhar códigos, podemos criar softwares melhores e mais confiáveis. Para obter mais informações, confira Sobre a Open Source Initiative na Open Source Initiative.
Para obter mais informações sobre como aplicar princípios open source ao trabalho de desenvolvimento da sua organização no GitHub, consulte o white paper intitulado Uma introdução ao innersource.
Ao criar um repositório público a partir de uma bifurcação do projeto de outra pessoa, confirme que incluiu um arquivo de licença que estabelece como você quer que seu projeto seja compartilhado com outros. Para obter mais informações, consulte Conseque uma licença de open source em choosealicense.com.
Para obter mais informações sobre código aberto, especificamente como criar e expandir um projeto de código aberto, criamos os Guias de Código Aberto, que ajudarão você a promover uma comunidade de código aberto benéfica, recomendando melhores práticas para criar e manter repositórios no seu projeto de código aberto. Você também pode fazer um curso gratuito de GitHub Skills sobre como manter comunidades de código aberto.
Pré-requisitos
Se ainda não tiver feito isso, primeiro configure o Git e a autenticação com GitHub.com do Git. Para saber mais, confira Configurar o git.
Bifurcar um repositório
Você pode realizar um fork de um projeto para propor alterações no repositório upstream. Nesse caso, uma boa prática é sincronizar regularmente seu fork com o repositório upstream. Para isso, é necessário usar Git na linha de comando. Você pode praticar a configuração do repositório upstream usando o mesmo repositório octocat/Spoon-Knife do qual acabou de criar um fork.
-
No GitHub, navegue até o repositório octocat/Spoon-Knife.
-
No canto superior direito da página, clique em Fork.

-
Em "Proprietário", selecione o menu suspenso e clique em um proprietário do repositório com fork.
-
Por padrão, os forks são nomeados da mesma forma que os respectivos repositórios pai. Opcionalmente, para um melhor destaque do seu fork, digite um nome no campo "Nome do repositório".
-
Opcionalmente, no campo "Descrição", digite uma descrição do fork.
-
Se desejar, selecione Copiar somente o branch PADRÃO.
Para muitos cenários de bifurcação, como contribuir para projetos de código aberto, você só precisa copiar o branch padrão. Se você não selecionar essa opção, todos os branches serão copiados para o novo fork.
-
Clique em Criar bifurcação.
Observação
Se você quiser copiar branches adicionais do repositório upstream, poderá fazê-lo na página Branches. Para saber mais, confira Criar e excluir branches no repositório.
Para criar um fork de um repositório, use o subcomando gh repo fork.
gh repo fork REPOSITORY
Para criar o fork em uma organização, use o sinalizador --org.
gh repo fork REPOSITORY --org "octo-org"
Você pode criar um fork de um repositório no GitHub.com ou no GitHub Desktop. Para obter informações sobre fork no GitHub.com, consulte a versão do artigo no navegador da Web.
No GitHub Desktop, se você clonar um repositório ao qual não tem acesso de gravação e, em seguida, tentar efetuar push de uma alteração para o repositório, um fork será criado para você.
-
No menu Arquivo, clique em Clonar Repositório.


-
Clique na aba que corresponde à localização do repositório que você deseja clonar. Neste exemplo, clicamos na guia URL.

-
Insira a URL ou o caminho do repositório que deseja clonar.

-
Para selecionar o diretório local no qual você deseja clonar o repositório, ao lado do campo "Caminho Local", clique em Escolher... e navegue até o diretório.

-
Na parte inferior da janela "Clonar um Repositório", clique em Clonar.
-
Para criar um fork, tente efetuar push de uma alteração para o repositório. Em seguida, crie um branch e publique-o. Um prompt será exibido perguntando se você deseja criar fork desse repositório.

-
Leia as informações em "Como você está planejando usar essa bifurcação?" .
- Se você pretende usar esse fork para contribuir com o repositório upstream original, clique em Para contribuir com o projeto pai.
- Se você pretende usar esse fork para um projeto não conectado ao upstream, clique em Para minhas próprias finalidades.
-
Clique em Continuar.
Clonando o seu repositório forkeado
Agora, você possui um fork do repositório Spoon-Knife, mas não tem os arquivos desse repositório no seu computador.
-
No GitHub, navegue até seu fork do repositório Spoon-Knife.
-
Acima da lista de arquivos, clique em Code.

-
Copie a URL do repositório.
-
Para clonar o repositório usando HTTPS, em "HTTPS", clique em .
-
Para clonar o repositório usando uma chave SSH, incluindo um certificado emitido pela autoridade de certificação SSH da sua organização, clique em SSH e em .
-
Para clonar um repositório usando a GitHub CLI, clique em GitHub CLI e em .

-
-
Abra TerminalTerminalGit Bash.
-
Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.
-
Digite
git clonee cole a URL já copiada. Terá este formato, com seu nome de usuário do GitHub em vez deYOUR-USERNAME:git clone https://github.com/YOUR-USERNAME/Spoon-Knife -
Pressione Enter. Seu clone local será criado.
$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remote: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
Clonando o seu repositório bifurcado
Agora, você tem um fork do repositório Spoon-Knife, mas não possui os arquivos desse repositório localmente no seu computador.
Para criar um clone do seu fork, use o sinalizador --clone.
gh repo fork REPOSITORY --clone=true
Configurar o Git para sincronizar o fork com o repositório upstream
Ao fazer fork de um projeto para propor mudanças no repositório original (upstream), é possível configurar o Git para puxar alterações do repositório upstream em seu clone local do fork.
-
No GitHub, navegue até o repositório octocat/Spoon-Knife.
-
Acima da lista de arquivos, clique em Code.

-
Copie a URL do repositório.
-
Para clonar o repositório usando HTTPS, em "HTTPS", clique em .
-
Para clonar o repositório usando uma chave SSH, incluindo um certificado emitido pela autoridade de certificação SSH da sua organização, clique em SSH e em .
-
Para clonar um repositório usando a GitHub CLI, clique em GitHub CLI e em .

-
-
Abra TerminalTerminalGit Bash.
-
Mude os diretórios para a localidade da bifurcação que você clonou.
- Para acessar o diretório base, digite apenas
cdsem nenhum outro texto. - Para listar os arquivos e as pastas do diretório atual, digite
ls. - Para entrar em um dos diretórios listados, digite
cd YOUR-LISTED-DIRECTORY. - Para subir um diretório, digite
cd ...
- Para acessar o diretório base, digite apenas
-
Digite
git remote -ve pressione Enter. Você verá o repositório remoto configurado atualmente para o seu fork.$ git remote -v > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch) > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (push) -
Digite
git remote add upstream, cole a URL copiada na Etapa 3 e pressione Enter. Ele terá a seguinte aparência:git remote add upstream https://github.com/ORIGINAL-OWNER/Spoon-Knife.git -
Para verificar o novo repositório upstream especificado para a bifurcação, digite
git remote -vnovamente. Você verá a URL do fork comoorigine a URL do repositório upstream comoupstream.$ git remote -v > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch) > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (push) > upstream https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (fetch) > upstream https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (push)
Agora é possível manter a bifurcação sincronizada com o repositório upstream usando apenas alguns comandos Git. Para saber mais, confira Sincronizar uma bifurcação.
Para configurar um repositório remoto para o repositório com fork, use o sinalizador --remote.
gh repo fork REPOSITORY --remote=true
Para especificar o nome do repositório remoto, use o sinalizador --remote-name.
gh repo fork REPOSITORY --remote-name "main-remote-repo"
Editando um fork
Você pode fazer alterações em uma bifurcação, incluindo:
-
**Como criar branches:** os [_branches_](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository) permitem que você crie recursos ou teste ideias sem colocar seu projeto principal em risco. -
**Como abrir solicitações de pull:** se você deseja contribuir novamente para o repositório upstream, envie uma solicitação ao autor original para efetuar pull do fork no repositório enviando uma [solicitação de pull](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
Localize outro repositório para bifurcar
Faça um fork de um repositório para começar a contribuir em um projeto. Você pode bifurcar qualquer repositório público:
- Para sua conta pessoal
- Para uma organização em que você tem permissão para criar repositórios
Se você tiver acesso a um repositório privado e o proprietário permitir bifurcação, você poderá bifurcar o repositório:
- Para sua conta pessoal
- Para uma organização no GitHub Team em que você tem permissão para criar repositórios
Não é possível criar forks de um repositório privado em uma organização que usa o GitHub Free. Para obter mais informações sobre GitHub Team e GitHub Free, confira Planos do GitHub. Para saber mais sobre quando você pode fazer um fork de um repositório, confira Sobre permissões e visibilidade de bifurcações.
Você pode explorar Explore GitHub para encontrar projetos e começar a contribuir para repositórios de código aberto. Para saber mais, confira Encontrar maneiras de contribuir para open source no GitHub.
Próximas etapas
Você já fez um fork de um repositório, praticou o clone do seu fork e configurou um repositório upstream.
-
Para saber mais sobre como clonar o fork e sincronizar as alterações em um repositório com fork usando o seu computador, confira Configurar o git.
-
Você também pode criar um novo repositório onde você pode colocar todos os seus projetos e compartilhar o código em GitHub. A criação de um repositório para seu projeto permite que você armazene código no GitHub. Isso fornece um backup do seu trabalho que você pode optar por compartilhar com outros desenvolvedores. Para saber mais, confira Guia de início rápido para repositórios.
-
Cada repositório do GitHub pertence a uma pessoa ou organização. Você pode interagir com as pessoas, os repositórios e as organizações conectando-se e seguindo-as no GitHub. Para saber mais, confira Encontrando inspiração em GitHub.
-
O GitHub tem uma ótima comunidade de suporte na qual você pode pedir ajuda e conversar com pessoas de todo o mundo. Participe da conversa na GitHub Community.