Esto es cómo lo hice yo, no se si es la mejor forma pero funciona 100%
Usé los comandos descriptos en este artículo https://help.github.com/articles/remove-sensitive-data/
- Dos repositorios: REPO_OLD con la carpeta que quiero mover, REPO_NEW un repositorio vacío a donde quiero mover la carpeta
- Copiar todo (incluida la carpeta .git) desde el repositorio REPO_OLD al repositorio REPO_NEW (otra forma es clonar REPO_OLD en una nueva carpeta REPO_NEW)
- IMPORTANTE: borrar origin en el repositorio REPO_NEW: git remote rm origin
- Borrar en el repositorio REPO_NEW todas las carpetas que NO se quieren mover. Por ej. si la carpeta se llama FOLDER entoncesgit filter-branch --force --index-filter ' git rm --cached --ignore-unmatch -r FOLDER/ ' --prune-empty --tag-name-filter cat -- --all
hacerlo con todas las carpetas, una por una. Al final en REPO_NEW debería quedar solamente la carpeta que queremos mover. Si algunas carpetas todavía existen es porque tenían archivos que no se habían agregado a git, se pueden borrar a mano sin problemas.
- Ahora hay que setear el origin en REPO_NEW para que apunte al nuevo repositorio.
Por ej. git remote add origin git@bitbucket.org:someuser/REPO_NEW.git
- Pushear los cambios, forzando que sobreescriba en el origin: git push origin --force --all
- Ok, la carpeta está copiada, pero todavía existe en el otro repositorio. Se puede borrar usando el mismo comando del paso 4.
- Listo
No hay comentarios:
Publicar un comentario