Skip to main content

Dividir una subcarpeta en un nuevo repositorio

Puedes convertir una carpeta dentro de un repositorio de Git en un nuevo repositorio.

Platform navigation

Nota: Necesita la versión de Git 2.22.0 o posterior para seguir estas instrucciones; de lo contrario git filter-repo, no funcionará.

Si creas un nuevo clon del repositorio, no perderás ninguno de tus historiales o cambios de Git cuando divides una carpeta en un repositorio separado. Sin embargo, ten en cuenta que el nuevo repositorio no tendrá las ramas y etiquetas del repositorio original.

  1. Abra TerminalTerminalGit Bash.

  2. Cambia el directorio de trabajo actual a la ubicación donde deseas crear tu nuevo repositorio.

  3. Clona el repositorio que contiene la subcarpeta.

    git clone https://github.com/USERNAME/REPOSITORY-NAME
    
  4. Cambia el directorio de trabajo actual por tu repositorio clonado.

    cd REPOSITORY-NAME
    
  5. Para aplicar un filtro que excluya la subcarpeta del resto de archivos del repositorio, instala git-filter-repo y ejecuta git filter-repo con los siguientes argumentos.

    • FOLDER-NAME: la carpeta dentro del proyecto en la que quiere crear un repositorio independiente.

    Sugerencia: Los usuarios de Windows deben utilizar / para delimitar carpetas.

    $ git filter-repo --path FOLDER-NAME/
    # Filter the specified branch in your directory and remove empty commits
    

    El repositorio debería ahora únicamente contener archivos que estuvieron en tu(s) subcarpeta(s)

    Si desea que una subcarpeta específica sea la nueva carpeta raíz del nuevo repositorio, puede usar el siguiente comando:

    $ git filter-repo --subdirectory-filter FOLDER-NAME
    # Filter the specific branch by using a single sub-directory as the root for the new repository
    
  6. Cree un repositorio en GitHub.

  7. En la parte superior del nuevo repositorio en la página Configuración rápida de GitHub.com, haga clic en para copiar la dirección URL del repositorio remoto.

    Captura de pantalla del encabezado "Configuración rápida" en un repositorio. Junto a la dirección URL remota, aparece un icono de dos cuadrados superpuestos resaltado con un contorno naranja.

    Sugerencia: Para información sobre la diferencia entre las direcciones URL HTTPS y SSH, consulta "Acerca de los repositorios remotos".

  8. Agrega un nuevo nombre remoto con la dirección URL que has copiado para el repositorio. Por ejemplo, origin o upstream son dos opciones comunes.

    git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
    
  9. Verifica que la URL remota se haya agregado con el nombre de tu nuevo repositorio.

    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
    
  10. Sube tus cambios al nuevo repositorio en GitHub.

    git push -u origin BRANCH-NAME