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.
-
Abra TerminalTerminalGit Bash.
-
Cambia el directorio de trabajo actual a la ubicación donde deseas crear tu nuevo repositorio.
-
Clona el repositorio que contiene la subcarpeta.
git clone https://github.com/USERNAME/REPOSITORY-NAME
-
Cambia el directorio de trabajo actual por tu repositorio clonado.
cd REPOSITORY-NAME
-
Para aplicar un filtro que excluya la subcarpeta del resto de archivos del repositorio, instala
git-filter-repo
y ejecutagit filter-repo
con los siguientes argumentos.FOLDER-NAME
: la carpeta dentro del proyecto en la que quiere crear un repositorio independiente.
Tip
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
-
Cree un repositorio en GitHub.
-
En la parte superior del nuevo repositorio en la página Configuración rápida de GitHub, haga clic en para copiar la dirección URL del repositorio remoto.
Tip
Para obtener información sobre la diferencia entre las direcciones URL HTTPS y SSH, consulta Acerca de los repositorios remotos.
-
Agrega un nuevo nombre remoto con la dirección URL que has copiado para el repositorio. Por ejemplo,
origin
oupstream
son dos opciones comunes.git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
-
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)
-
Sube tus cambios al nuevo repositorio en GitHub.
git push -u origin BRANCH-NAME