Skip to main content

Sincronizar uma bifurcação

Sincronize uma bifurcação de um repositório para mantê-la atualizada com o repositório upstream.

Quem pode usar esse recurso?

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

Platform navigation

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

  1. Em GitHub, acesse 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 sobre os commits do repositório upstream e clique em Atualizar branch.

Se as alterações do repositório a upstream gerarem conflitos, GitHub solicitará a criação de um pull request para resolver os conflitos.

Sincronizar um branch de fork com a 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, confira "Sobre o a CLI do GitHub".

Para atualizar o fork remoto por meio do próprio pai, use o subcomando gh repo sync -b BRANCHNAME e forneça o nome do fork como argumento.

gh repo sync owner/cli-fork -b BRANCH_NAME

Se as alterações do repositório upstream causarem conflito, a s GitHub CLI não poderá sincronizá-las. Defina o sinalizador --force para substituir o branch de destino.

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. Para obter mais informações, confira "Configurar um repositório remoto para um fork".

  1. Abra TerminalTerminalGit 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 em BRANCHNAME serão armazenados no branch upstream/BRANCHNAME local.

    $ 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://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      main     -> upstream/main
    
  4. Faça check-out do branch padrão local do fork, neste caso, usamos o main.

    $ git checkout main
    > Switched to branch 'main'
    
  5. Mescle as alterações do branch padrão upstream, neste caso, upstream/main, no branch padrão local. Isso coloca o branch padrão da bifurcação em sincronia 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 executará um avanço. Para obter mais informações, confira Conceitos básicos de branch e 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. Para obter mais informações, confira "Resolvendo conflitos de mesclagem".

Dica: a sincronização do fork atualiza apenas a cópia local do repositório. Para atualizar o fork no GitHub.com, você precisa efetuar push das alterações.