GIT: ¿Cómo mover la carpeta git dentro de la subcarpeta y reescribir el historial para pretender que siempre fue así?

Por error, puse mi carpeta .git en una location más alta de la necesaria:

Folder1/ .git <-- currently here myproject/ .git <--- should be here 

Me gustaría moverlo dentro de myproject pero rompería la compatibilidad con versiones anteriores cuando busque ancien commits a partir de ahí en …

¿Hay alguna manera de mantenerlo constante? Tal vez reescribiendo la historia / pretendiendo que siempre fue así? Supongo que podría hacerse con git filter-branch --tree-filter pero no estoy seguro de cómo?

Desde que movió la carpeta .git carpeta myproject , git no puede detectar el file desde su ruta relativa original, pero encuentra los files existentes en una nueva ruta relativa, por lo que el git status informará los files originales eliminados y tiene nuevos files.

Como antes de mover la carpeta .git , git rastrear files en la carpeta myproject en git repo como root/myproject/* . Después de mover la carpeta .git , los files debajo de la carpeta myproject están debajo de la raíz del git repo ahora ( root/* ). Entonces git detecta que son files nuevos (sin seguimiento) y piensa que los files en root/myproject/* ya no existen (eliminados).

Y como el repository git es solo para su propio uso, puede enviar el directory de cambios. Si desea eliminar los historiales de confirmaciones originales cuando la carpeta .git estaba en la Folder1 , puede usar git rebase -i para descartar algunas confirmaciones .

Si desea mantener el historial de compromisos para los files en la carpeta myproject , no debe mover la carpeta .git sino mover los files y las carpetas debajo de la Folder1 mientras está fuera de la carpeta del proyecto .