Dupliquer un dépôt
Pour dupliquer un dépôt sans le forger, vous pouvez exécuter une commande de clonage spéciale, puis envoyer en miroir vers le nouveau dépôt. Avant de pouvoir dupliquer un dépôt et pousser vers votre nouvelle copie, ou miroir, du dépôt, vous devez créer le nouveau dépôt sur GitHub.
Mettre en miroir un dépôt
Ouvrez Git Bash.
Créez un clone bare du dépôt :
git clone --bare https://github.com/exempleutilisateur/ancien-depot.git |
Appliquer un mirror-push vers le nouveau dépôt :
cd ancien-depot.git git push --mirror https://github.com/exempleutilisateur/nouveau-depot.git |
Supprimer le dépôt local temporaire que vous avez créé précédemment :
cd .. rm -rf ancien-depot.git |
Mise en miroir d'un dépôt contenant des objets Git Large File Storage
Ouvrez Git Bash.
Créer un clone vide 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, et remplacez l'exemple de nom de dépôt par le nom du dépôt que vous souhaitez dupliquer :
git clone --bare https://github.com/exempleutilisateur/ancien-depot.git |
Accéder au dépôt que vous venez de cloner :
cd ancien-depot.git |
Extraire les objets Git Large File Storage du dépôt :
git lfs fetch --all |
Appliquer un Mirror-push vers le nouveau dépôt :
git push --mirror https://github.com/exempleutilisateur/nouveau-depot.git |
Pousser les objets Git Large File Storage du dépôt vers votre miroir :
git lfs push --all https://github.com/exempleutilisateur/nouveau-depot.git |
Supprimer le dépôt local temporaire que vous avez créé précédemment :
cd .. rm -rf ancien-depot.git |
Mettre en miroir 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 périodiquement les modifications.
Ouvrez Git Bash.
Créer un clone en miroir vide du dépôt :
git clone --mirror https://github.com/exempleutilisateur/depot-a-miroir.git |
Régler l'emplacement de poussée sur votre miroir :
cd depot-a-miroir.git git remote set-url --push origin https://github.com/exempleutilisateur/miroir |
Comme avec un clone vide, un clone en miroir inclut toutes les branches et balises à distances, mais toutes les dépôts locales seront écrasées à chaque fois que vous récupérez, donc ce sera toujours le même que le dépôt d'origine. La définition de l'URL pour les envois simplifie l'envoi vers votre miroir. Pour mettre à jour votre miroir, récupérez les mises à jour et envoyez-les :
git fetch -p origin git push --mirror |