Skip to main content

Sincronizar um fork

Sincronize um repositório bifurcado com seu repositório upstream usando a interface da Web, GitHub CLI ou linha de comando.

Quem pode usar esse recurso?

People with write access for a forked repository can sync the fork to the upstream repository.

Sincronizar um branch de fork usando a interface do usuário da Web

  1. Em GitHubseguida, navegue até a página principal do repositório bifurcado que você deseja sincronizar com o repositório upstream.

  2. Acima da lista de arquivos, selecione o menu suspenso Sincronizar fork.

    Captura de tela da página principal de um fork. Um menu suspenso, rotulado com um ícone de sincronização e "Sincronizar fork", está contornado em laranja escuro.

  3. Revise os detalhes dos commits do repositório upstream e clique em Atualizar branch.

Se as alterações do repositório upstream causarem conflitos, GitHub solicitará que você crie uma solicitação de pull para resolver os conflitos.

Sincronizando um branch de bifurcação com o GitHub CLI

A GitHub CLI é uma ferramenta de código aberto para uso do GitHub na linha de comando do computador. Quando você está trabalhando na linha de comando, você pode usar GitHub CLI para economizar tempo e evitar mudar o contexto. Para saber mais sobre GitHub CLI, consulte Sobre GitHub CLI.

Para atualizar o fork remoto a partir do repositório de origem, use o subcomando gh repo sync -b BRANCH-NAME e forneça o nome do seu fork e da ramificação como argumentos.

gh repo sync owner/cli-fork -b BRANCH-NAME

Se as alterações do repositório upstream causarem conflitos, não GitHub CLI será possível sincronizar. Para substituir o branch de destino, use o --force sinalizador.

Sincronizar um branch de fork usando a linha de comando

Para sincronizar o fork com um repositório upstream, você precisa configurar um controle remoto que aponte para o repositório upstream no Git. Consulte Configurar um repositório remoto para um fork.

  1. Abra o terminal ou o Git Bash.

  2. Altere o diretório de trabalho atual para seu projeto local.

  3. Obtenha os branches e os respectivos commits do repositório upstream. Os commits para BRANCH-NAME serão armazenados no ramo local upstream/BRANCH-NAME.

    $ git fetch upstream
    > remote: Counting objects: 75, done.
    > remote: Compressing objects: 100% (53/53), done.
    > remote: Total 62 (delta 27), reused 44 (delta 9)
    > Unpacking objects: 100% (62/62), done.
    > From https://HOSTNAME/ORIGINAL-OWNER/ORIGINAL-REPOSITORY
    >  * [new branch]      main     -> upstream/main
    
  4. Confira o branch padrão local da bifurcação. Neste exemplo, usamos main.

    $ git checkout main
    > Switched to branch 'main'
    
  5. Mesclar as alterações do branch padrão upstream em seu branch padrão local. Neste exemplo, o branch padrão upstream é upstream/main. Isso sincroniza o branch padrão da bifurcação com o repositório upstream sem perder as alterações locais.

    $ git merge upstream/main
    > Updating a422352..5fdff0f
    > Fast-forward
    >  README                    |    9 -------
    >  README.md                 |    7 ++++++
    >  2 files changed, 7 insertions(+), 9 deletions(-)
    >  delete mode 100644 README
    >  create mode 100644 README.md
    

    Se o branch local não tiver commits exclusivos, o git realizará um avanço rápido. Consulte o Branching Básico e a Mesclagem na documentação do Git.

    $ git merge upstream/main
    > Updating 34e91da..16c56ad
    > Fast-forward
    >  README.md                 |    5 +++--
    >  1 file changed, 3 insertions(+), 2 deletions(-)
    

    Se o branch local tiver commits exclusivos, poderá ser necessário resolver conflitos. Consulte Mesclar e fechar pull requests.

Dica

A sincronização do fork atualiza apenas a cópia local do repositório. Para atualizar sua bifurcação sua instância do GitHub Enterprise Server, você deve enviar suas alterações por push.