Skip to main content

Duplication d’un dépôt

Pour conserver un miroir d’un dépôt sans le dupliquer (fork), vous pouvez exécuter une commande de clone spéciale, puis pousser (push) le miroir vers le nouveau dépôt.

Platform navigation

Avant de pouvoir envoyer (push) le référentiel d’origine vers votre nouvelle copie, ou miroir, du référentiel, vous devez créer le référentiel sur votre instance GitHub Enterprise Server. Dans ces exemples, exampleuser/new-repository ou exampleuser/mirrored sont les miroirs.

Mise en miroir d’un dépôt

  1. Ouvrez TerminalTerminalGit Bash.

  2. Créez un clone nu du dépôt.

    git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. Poussez le miroir vers le nouveau dépôt.

    cd OLD-REPOSITORY.git
    git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
    
  4. Supprimez le dépôt local temporaire que vous avez créé.

    cd ..
    rm -rf OLD-REPOSITORY.git
    

Mise en miroir d’un dépôt qui contient des objets Stockage Fichiers volumineux Git

  1. Ouvrez TerminalTerminalGit Bash.

  2. Créez un clone nu du dépôt. Remplacez l’exemple de nom d’utilisateur par le nom de la personne ou de l’organisation propriétaire du dépôt, puis remplacez l’exemple de nom de dépôt par le nom du dépôt que vous souhaitez dupliquer.

    git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. Accédez au dépôt que vous venez de cloner.

    cd OLD-REPOSITORY.git
    
  4. Extrayez les objets Stockage Fichiers volumineux Git du dépôt.

    git lfs fetch --all
    
  5. Poussez le miroir vers le nouveau dépôt.

    git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
    
  6. Poussez les objets Stockage Fichiers volumineux Git du dépôt vers votre miroir.

    git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  7. Supprimez le dépôt local temporaire que vous avez créé.

    cd ..
    rm -rf OLD-REPOSITORY.git
    

Mise en miroir d’un dépôt dans un autre emplacement

Si vous souhaitez mettre en miroir un dépôt dans un autre emplacement, y compris obtenir des mises à jour à partir de l’original, vous pouvez cloner un miroir et pousser régulièrement les modifications.

  1. Ouvrez TerminalTerminalGit Bash.

  2. Créez un clone en miroir nu du dépôt.

    git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
    
  3. Définissez votre miroir comme emplacement de poussée.

    cd REPOSITORY-TO-MIRROR
    git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRRORED
    

    Comme pour un clone nu, un clone mis en miroir inclut toutes les étiquettes et branches distantes, mais toutes les références locales seront remplacées chaque fois que vous effectuerez une récupération (fetch) ; il sera par conséquent toujours identique au dépôt d’origine. La définition de l’URL pour les poussées simplifie la poussée vers votre miroir.

  4. Pour mettre à jour votre miroir, récupérez les mises à jour et effectuez une poussée.

    git fetch -p origin
    git push --mirror