Skip to main content

Atualmente o GitHub AE está em versão limitada.

Bifurcar um repositório

Um fork é um novo repositório que compartilha configurações de código e visibilidade com o repositório "upstream" original.

Platform navigation

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 bifurcações para propor alterações relacionadas à correção de um bug. Em vez de registrar um erro encontrado, você pode:

  • Crie fork do repositório.
  • Fazer a correção.
  • Enviar um 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 de como aplicar os princípios de código aberto ao trabalho de desenvolvimento da organização em sua empresa, confira o white paper "Uma introdução ao InnerSource" do GitHub".

Pré-requisitos

Se ainda não tiver feito isso, primeiro configure o Git e a autenticação com sua empresa do Git. Para obter mais informações, confira "Configurar o git".

Bifurcar um repositório

Você pode criar fork de um projeto para propor alterações no repositório upstream. Nesse caso, uma boa prática é sincronizar regularmente sua bifurcação 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.

  1. No Em sua empresa, navegue até o repositório octocat/Spoon-Knife.

  2. No canto superior direito da página, clique em Criar Fork.

    Captura de tela da página principal de um repositório. Um botão, rotulado com um ícone de fork e "Fork 59.3k", está contornado em laranja escuro.

  3. Em "Proprietário", selecione o menu suspenso e clique em um proprietário do repositório com fork.

  4. Por padrão, os forks são nomeados da mesma forma que os respectivos repositórios pai. Opcionalmente, para distinguir ainda mais o fork, no campo "Nome do repositório", digite um nome.

  5. Opcionalmente, no campo "Descrição", digite uma descrição do fork.

  6. Clique em Criar bifurcação.

Observação: se você quiser copiar branches adicionais do repositório pai, poderá fazê-lo na página Branches. Para saber mais, confira "Criar e excluir branches no repositório".

Para saber mais sobre GitHub CLI, confira "Sobre o a CLI do GitHub".

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"

É possível criar fork do repositório noGitHub.com ou no GitHub Desktop. Para obter informações sobre a bifurcação no GitHub.com, confira a versão do navegador da Web deste artigo.

No GitHub Desktop, se você tentar clonar um repositório ao qual não tem acesso de gravação, um fork será criado automaticamente para você.

  1. No menu Arquivo, clique em Clonar Repositório.

    Captura de tela da barra de menus no Mac. O menu suspenso "Arquivo" é expandido e a opção "Clonar Repositório" está realçada com um contorno laranja.

    Captura de tela da barra de menus "GitHub Desktop" no Windows. O menu suspenso "Arquivo" é expandido e a opção "Clonar Repositório" está realçada com um contorno laranja.

  2. Clique na aba que corresponde à localização do repositório que você deseja clonar. Clique também na URL para inserir o local do repositório manualmente.

    Captura de tela da janela "Clonar um repositório". Na parte superior da janela, as guias rotuladas como "GitHub.com", "GitHub Enterprise" e "URL" são realçadas com um contorno laranja.

  3. Na lista de repositórios, clique no repositório que você deseja clonar.

    Captura de tela da janela "Clonar um repositório". O repositório "github/docs" está realçado com um contorno laranja.

  4. 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.

    Captura de tela da janela "Clonar um repositório". O botão, rotulado como "Escolher", está realçado com um contorno laranja.

  5. Na parte inferior da janela "Clonar um Repositório", clique em Clonar.

  6. 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.
  7. Clique em Continuar.

Clonando o seu repositório bifurcado

Agora, você tem uma bifurcação do repositório Spoon-Knife, mas você não tem os arquivos desse repositório localmente no seu computador.

  1. Em sua empresa, navegue até o fork do repositório Spoon-Knife.

  2. Acima da lista de arquivos, clique em Código.

    Captura de tela da lista de arquivos na página de aterrissagem de um repositório. O botão "Código" está realçado com um contorno laranja escuro.

  3. 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 .

      Captura de tela do menu suspenso "Código". À direita da URL HTTPS do repositório, um ícone de cópia está contornado em laranja escuro.

  4. Abra TerminalTerminalGit Bash.

  5. Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.

  6. Digite git clone e cole a URL já copiada. Ela terá esta aparência, com seu nome de usuário do GitHub AE em vez de YOUR-USERNAME:

    git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
    
  7. Pressione Enter. Seu clone local estará criado.

    $ git clone https://HOSTNAME/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.
    

Para saber mais sobre GitHub CLI, confira "Sobre o a CLI do GitHub".

Para criar um clone do fork, use o sinalizador --clone.

gh repo fork REPOSITORY --clone=true
  1. No menu Arquivo, clique em Clonar Repositório.

    Captura de tela da barra de menus no Mac. O menu suspenso "Arquivo" é expandido e a opção "Clonar Repositório" está realçada com um contorno laranja.

    Captura de tela da barra de menus "GitHub Desktop" no Windows. O menu suspenso "Arquivo" é expandido e a opção "Clonar Repositório" está realçada com um contorno laranja.

  2. Clique na aba que corresponde à localização do repositório que você deseja clonar. Clique também na URL para inserir o local do repositório manualmente.

    Captura de tela da janela "Clonar um repositório". Na parte superior da janela, as guias rotuladas como "GitHub.com", "GitHub Enterprise" e "URL" são realçadas com um contorno laranja.

  3. Na lista de repositórios, clique no repositório que você deseja clonar.

    Captura de tela da janela "Clonar um repositório". O repositório "github/docs" está realçado com um contorno laranja.

  4. 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.

    Captura de tela da janela "Clonar um repositório". O botão, rotulado como "Escolher", está realçado com um contorno laranja.

  5. Na parte inferior da janela "Clonar um Repositório", clique em Clonar.

Configurar o Git para sincronizar o fork com o repositório upstream

Ao criar fork em um projeto para propor mudanças no repositório original, é possível configurar o Git para fazer pull de alterações do repositório upstream no clone local do fork.

  1. No Em sua empresa, navegue até o repositório octocat/Spoon-Knife.

  2. Acima da lista de arquivos, clique em Código.

    Captura de tela da lista de arquivos na página de aterrissagem de um repositório. O botão "Código" está realçado com um contorno laranja escuro.

  3. 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 .

      Captura de tela do menu suspenso "Código". À direita da URL HTTPS do repositório, um ícone de cópia está contornado em laranja escuro.

  4. Abra TerminalTerminalGit Bash.

  5. Mude os diretórios para a localidade da bifurcação que você clonou.

    • Para acessar o diretório base, digite apenas cd sem 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 ...
  6. Digite git remote -v e pressione Enter. Você verá o repositório remoto atual configurado para sua bifurcação.

    $ git remote -v
    > origin  https://HOSTNAME/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://HOSTNAME/YOUR_USERNAME/YOUR_FORK.git (push)
    
  7. 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://HOSTNAME/ORIGINAL_OWNER/Spoon-Knife.git
    
  8. Para verificar o novo repositório upstream especificado para a bifurcação, digite git remote -v novamente. Você verá a URL do fork como origin e a URL do repositório upstream como upstream.

    $ git remote -v
    > origin    https://HOSTNAME/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin    https://HOSTNAME/YOUR_USERNAME/YOUR_FORK.git (push)
    > upstream  https://HOSTNAME/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
    > upstream  https://HOSTNAME/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 obter mais informações, confira "Sincronizar uma bifurcação".

Para saber mais sobre GitHub CLI, confira "Sobre o a CLI do GitHub".

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 uma bifurcação

Você pode fazer alterações em uma bifurcação, incluindo:

  • Como criar branches: os branches 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.

Localize outro repositório para bifurcar

Bifurque um repositório para começar a contribuir com um projeto. Se as políticas da sua empresa permitirem a criação de forks privados e repositórios internos, você poderá criar forks de um repositório para sua conta pessoal ou para qualquer organização em que tenha permissão para criar repositórios. Para obter mais informações, confira "Funções em uma organização".

Para saber mais sobre quando você pode criar fork de um repositório, confira "Sobre permissões e visibilidade de bifurcações".

Próximas etapas

Você já bifurcou um repositório, treinou clonar sua bifurcação 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 obter mais informações, confira "Criar um repositório"."

  • Cada repositório em GitHub pertence a uma pessoa ou organização. Você pode interagir com as pessoas, repositórios e organizações, conectando-se e seguindo-as em GitHub AE. Para obter mais informações, confira "Interagir socialmente".

  • 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.