# Dividir una subcarpeta en un nuevo repositorio

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

> \[!NOTE]
> Necesitas 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 <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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.

   ```shell
   git clone https://github.com/USERNAME/REPOSITORY-NAME
   ```

4. Cambia el directorio de trabajo actual por tu repositorio clonado.

   ```shell
   cd REPOSITORY-NAME
   ```

5. Para aplicar un filtro que excluya la subcarpeta del resto de archivos del repositorio, instala [`git-filter-repo`](https://github.com/newren/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.

   <div class="ghd-tool windows">

   > \[!TIP]
   > Windows los usuarios deben usar `/` para delimitar carpetas.

   </div>

   ```shell
   $ 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:

   ```shell
   $ 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. [Crea un repositorio](/es/repositories/creating-and-managing-repositories/creating-a-new-repository) en GitHub.

7. En la parte superior del nuevo repositorio en la página Configuración rápida de GitHub, haga clic en <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg> 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, un icono de dos cuadrados superpuestos está resaltado con un contorno naranja.](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png)

   > \[!TIP]
   > Para obtener información sobre la diferencia entre las direcciones URL HTTPS y SSH, consulta [Acerca de los repositorios remotos](/es/get-started/git-basics/about-remote-repositories).

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.

   ```shell
   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.

   ```shell
   $ 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.

    ```shell
    git push -u origin BRANCH-NAME
    ```