GIT – cómo 'iniciar correctamente' correctamente el directory 'superior' de un repository git

Tengo un directory ./a/b/ . Solo b es un git repo. Ahora he decidido que el tree git repo debería comenzar desde a , e include (si es posible) toda la información sobre b repo.

Intenté simplemente git init desde a git init y comprometerme. Pero cuando a es clonado, tiene un b vacío. (lo cual es interesante, porque por lo que sé, git generalmente ignora los directorys vacíos)

¿Es posible hacer esto de alguna manera?

Simplemente corte y pegue su carpeta .git y agregue todo.

 mv .git ../.git #move the repo cd .. #go to the parent dir git add --all #add everything git commit -m 'moves everything into a subfolder' #commit everything 

git reconocerá todo como "renombrado": (ejemplo con un file)

estado de git
En la twig maestro
Cambios a cometer:
(use "git reset HEAD …" para salir del escenario)

renombrado: testing -> b / testing

Propongo quedarme en su repository en ./a/b y mover todos los files rastreados a un subdirectory ./a/b/a/b través de git mv filename . Después de esto, su repos tiene la estructura correcta, que es todo lo que realmente count. A continuación, puede mover todo el repository a . para get exactamente lo que quieres git mv admite el uso de comodines para facilitar esto.

Pregunta relacionada Puede get un poco más de automation a través de esta respuesta .