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.

Who can use this feature

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 GitHub Enterprise Server, acesse a página principal do repositório bifurcado que você deseja sincronizar com o repositório upstream.
  2. Selecione o menu suspenso Buscar upstream. Menu suspenso "Buscar upstream"
  3. Revise os detalhes sobre os commits do repositório upstream e clique em Buscar e mesclar. Botão "Buscar e mesclar"

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 a GitHub CLI, confira "Sobre a GitHub CLI".

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 BRANCHNAME

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.

  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://hostname/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 "Como resolver conflitos de mesclagem".

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