Para que puedas duplicar un repositorio y subirlo a tu nueva copia, o espejo del repositorio, antes debes crear el nuevo repositorio en tu instancia de servidor de GitHub Enterprise. En estos ejemplos, exampleuser/new-repository
o exampleuser/mirrored
son los espejos.
Generar un espejo de un repositorio
- Abre la TerminalTerminalGit Bash.
- Crea un clon desnudo de un repositorio.
$ git clone --bare https://nombre de host/exampleuser/old-repository.git
- Sube en espejo al nuevo repositorio.
$ cd old-repository.git $ git push --mirror https://nombre de host/exampleuser/new-repository.git
- Eliminar el repositorio local temporal que creaste previamente.
$ cd .. $ rm -rf old-repository.git
Replicar un repositorio que contiene objetos de Almacenamiento de archivos de gran tamaño Git
- Abre la TerminalTerminalGit Bash.
- Crea un clon desnudo de un repositorio. Reemplaza el nombre de usuario del ejemplo por el nombre de la persona u organización propietaria del repositorio y reemplaza el nombre del repositorio del ejemplo por el nombre del repositorio que deseas duplicar.
$ git clone --bare https://nombre de host/exampleuser/old-repository.git
- Dirígete al repositorio que acabas de clonar.
$ cd old-repository.git
- Extra los objetos Almacenamiento de archivos de gran tamaño Git del repositorio.
$ git lfs fetch --all
- Sube en espejo al nuevo repositorio.
$ git push --mirror https://nombre de host/exampleuser/new-repository.git
- Sube los objetos Almacenamiento de archivos de gran tamaño Git del repositorio a tu espejo.
$ git lfs push --all https://github.com/exampleuser/new-repository.git
- Eliminar el repositorio local temporal que creaste previamente.
$ cd .. $ rm -rf old-repository.git
Replicar un repositorio en otra ubicación
Si quieres replicar un repositorio en otra ubicación, incluido obtener actualizaciones del original, puedes clonar una réplica y subir periódicamente los cambios.
- Abre la TerminalTerminalGit Bash.
- Crea un clon desnudo en espejo del repositorio.
$ git clone --mirror https://nombre de host/exampleuser/repository-to-mirror.git
- Establece la ubicación para subir en tu espejo.
$ cd repository-to-mirror.git $ git remote set-url --push origin https://nombre de host/exampleuser/mirrored
Al igual que sucede con un clon básico, un clon replicado incluye todas las ramas y etiquetas remotas, pero todas las referencias locales se sobrescribirán cada vez que extraigas elementos, por eso siempre será igual al repositorio original. El proceso para subir elementos a tu espejo se simplifica si estableces la URL para los elementos que subes. Para actualizar tu espejo, extrae las actualizaciones y súbelas.
$ git fetch -p origin
$ git push --mirror