Actualmente tengo la siguiente estructura de carpetas:
root .git (folder) Folder A SubFolderA ... Folder B ...
Y quiero la siguiente estructura:
root Folder A .git (folder) SubFolderA ... Folder B ...
¿Cómo puedo hacer esto sin destruir mi repository actual?
Gracias por adelantado.
Si realmente quieres eso, entonces adelante y muévelo:
$ mv .git FolderA/ $ cd FolderA/ $ git add .
Pero observe cómo todos los files en FolderB
ahora estarán fuera del control de la fuente:
$ git commit -m "Remove all but FolderA from source control" [master d044479] Remove all but FolderA from source control 10 files changed, 5 deletions(-) rename FolderA/FileInA1 => FileInA1 (100%) rename FolderA/FileInA2 => FileInA2 (100%) rename FolderA/FileInA3 => FileInA3 (100%) rename FolderA/FileInA4 => FileInA4 (100%) rename FolderA/FileInA5 => FileInA5 (100%) delete mode 100644 FolderB/FileInB1 delete mode 100644 FolderB/FileInB2 delete mode 100644 FolderB/FileInB3 delete mode 100644 FolderB/FileInB4 delete mode 100644 FolderB/FileInB5
No tiene que preocuparse por estos otros files si desea leerlos más tarde, su historial no se pierde.
Por ejemplo, si decide revertir este compromiso, siempre puede hacerlo:
$ git reset --hard @^
Observe cómo esto volverá a crear una segunda copy de FolderB
bajo FolderA/FolderB
:
.. ├── FolderA │ ├── FolderA │ │ ├── FileInA1 │ │ ├── FileInA2 │ │ ├── FileInA3 │ │ ├── FileInA4 │ │ └── FileInA5 │ └── FolderB │ ├── FileInB1 │ ├── FileInB2 │ ├── FileInB3 │ ├── FileInB4 │ └── FileInB5 └── FolderB ├── FileInB1 ├── FileInB2 ├── FileInB3 ├── FileInB4 └── FileInB5