# Sincronizar um fork

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

## 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.](/assets/images/help/repository/sync-fork-dropdown.png)
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](/pt/enterprise-server@3.21/github-cli/github-cli/about-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.

```shell
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](/pt/enterprise-server@3.21/pull-requests/how-tos/work-with-forks/configuring-a-remote-repository-for-a-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`.

   ```shell
   $ 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`.

   ```shell
   $ 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.

   ```shell
   $ 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](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging) na documentação do Git.

   ```shell
   $ 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](/pt/enterprise-server@3.21/pull-requests/how-tos/merge-and-close-pull-requests).

> \[!TIP]
> 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](/pt/enterprise-server@3.21/get-started/using-git/pushing-commits-to-a-remote-repository).