# Synchronisation d’une duplication

Synchronisez un référentiel dupliqué avec son référentiel en amont à l’aide de l’interface web, GitHub CLI ou de la ligne de commande.

## Synchronisation d’une branche de duplication à partir de l’interface utilisateur web

1. Dans GitHub, accédez à la page principale du référentiel dupliqué que vous souhaitez synchroniser avec le référentiel en amont.
2. Au-dessus de la liste des fichiers, sélectionnez le menu déroulant **Synchroniser la duplication**.

   ![Capture d’écran de la page principale d’une duplication. Un menu déroulant avec une icône de synchronisation et « Synchroniser le fork » est souligné en orange foncé.](/assets/images/help/repository/sync-fork-dropdown.png)
3. Examinez les détails des validations à partir du référentiel en amont, puis cliquez sur **Mettre à jour la  branche**.

Si les modifications du référentiel en amont provoquent des conflits, GitHub vous invitez à créer une demande de tirage pour résoudre les conflits.

## Synchronisation d’une branche de fourche avec le GitHub CLI

GitHub CLI est un outil open source permettant d’utiliser GitHub à partir de la ligne de commande de votre ordinateur. Lorsque vous travaillez à partir de la ligne de commande, vous pouvez utiliser l’GitHub CLI pour gagner du temps et éviter de changer de contexte. Pour en savoir plus sur GitHub CLI, consultez [À propos de l’interface CLI GitHub](/fr/enterprise-server@3.22/github-cli/github-cli/about-github-cli).

Pour mettre à jour le fork distant à partir de son parent, utilisez la sous-commande `gh repo sync -b BRANCH-NAME` et spécifiez votre fork et le nom de votre branche en tant qu'arguments.

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

Si les modifications du référentiel en amont provoquent des conflits, la GitHub CLI synchronisation ne peut pas être effectuée. Pour remplacer la branche de destination, utilisez l’indicateur `--force` .

## Synchronisation d'une branche bifurquée depuis la ligne de commande

Avant de pouvoir synchroniser votre fork avec un référentiel en amont, vous devez configurer un remote pointant vers l'amont dans Git. Consultez « [Configuration d’un dépôt distant pour une duplication](/fr/enterprise-server@3.22/pull-requests/how-tos/work-with-forks/configuring-a-remote-repository-for-a-fork) ».

1. Ouvrez votre terminal ou Git Bash.

2. Remplacez le répertoire de travail actuel par votre projet local.

3. Récupérez les branches et leurs commits respectifs du dépôt en amont. Les commits dans `BRANCH-NAME` seront stockés dans la branche locale `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. Consultez la branche par défaut locale de votre fourche. Dans cet exemple, nous utilisons `main`.

   ```shell
   $ git checkout main
   > Switched to branch 'main'
   ```

5. Fusionnez les modifications de la branche par défaut en amont dans votre branche locale par défaut. Dans cet exemple, la branche par défaut en amont est `upstream/main`. Cela synchronise la branche par défaut de votre fourche avec le référentiel en amont sans perdre vos modifications locales.

   ```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
   ```

   Si votre branche locale n’a pas de commits uniques, Git effectuera une avance rapide. Consultez [La branche de base et la fusion](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging) dans la documentation Git.

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

   Si votre branche locale avait eu des commits uniques, vous devrez peut-être résoudre des conflits. Consultez « [Fusionner et fermer des pull requests](/fr/enterprise-server@3.22/pull-requests/how-tos/merge-and-close-pull-requests) ».

> \[!TIP]
> La synchronisation de votre fork met à jour uniquement votre copie locale du dépôt. Pour mettre à jour votre fourche, votre instance GitHub Enterprise Servervous devez [envoyer (push) vos modifications](/fr/enterprise-server@3.22/get-started/using-git/pushing-commits-to-a-remote-repository).