Skip to main content

Duplicar un repositorio

Para mantener una réplica de un repositorio sin bifurcarlo, puedes ejecutar un comando de clonado especial y luego subir la réplica al repositorio nuevo.

Platform navigation

Nota: Si tienes un proyecto hospedado en otro sistema de control de versiones, puede importarlo automáticamente a GitHub mediante la herramienta GitHub Importer. Para obtener más información, vea «Acerca de Importador GitHub».

Para poder insertar el repositorio original en la nueva copia, o reflejo, del repositorio, debe crear el repositorio en GitHub.com. En estos ejemplos, exampleuser/new-repository o exampleuser/mirrored son los reflejos.

Generar un espejo de un repositorio

  1. Abra TerminalTerminalGit Bash.

  2. Crea un clon desnudo del repositorio.

    git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. Sube en espejo al nuevo repositorio.

    cd OLD-REPOSITORY.git
    git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  4. 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 de Git

  1. Abra TerminalTerminalGit Bash.

  2. Crea un clon desnudo del 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://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. Dirígete al repositorio que acabas de clonar.

    cd OLD-REPOSITORY.git
    
  4. Extra los objetos Almacenamiento de archivos de gran tamaño de Git del repositorio.

    git lfs fetch --all
    
  5. Sube en espejo al nuevo repositorio.

    git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  6. Sube los objetos Almacenamiento de archivos de gran tamaño de Git del repositorio a tu espejo.

    git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  7. 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.

  1. Abra TerminalTerminalGit Bash.

  2. Crea un clon desnudo en espejo del repositorio.

    git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
    
  3. Establece la ubicación para subir en tu espejo.

    cd REPOSITORY-TO-MIRROR
    git remote set-url --push origin https://github.com/EXAMPLE-USER/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.

  4. Para actualizar tu espejo, extrae las actualizaciones y súbelas.

    git fetch -p origin
    git push --mirror
    

Información adicional