Mover una copia de trabajo git que contiene submódulos
Un cambio reciente en Git cambió la forma en que.git
El directorio se maneja cuando se usan submódulos. En lugar de tener uno.git
Por submódulo, todo está ahora en el "nivel raíz"..git
directorio (el que corresponde a la copia de trabajo incluyendo los submódulos).
Luego, en cada submódulo, se crea un archivo que apunta a la nueva ubicación del.git
directorio.
Enmi proyecto, Tengo los siguientes.gitmodules
expediente:
[submodule "tests/shared-tests"]
path = tests/shared-tests
url = git://github.com/roboptim/roboptim-shared-tests.git
[submodule "cmake"]
path = cmake
url = git://github.com/jrl-umi3218/jrl-cmakemodules.git
Cuando lo hagogit clone --recursive
, Luego obtengo:
$ cat cmake/.git
gitdir: /home/moulard/profiles/default-x86_64-linux-ubuntu-12.04.1/src/unstable/roboptim/roboptim-core/.git/modules/cmake
Actualmente estoy usando Git 1.8.1.5.
Mis preguntas son:
¿Por qué cambió este comportamiento? No veo ninguna ganancia obvia a esta nueva estrategia.¿Cómo puedo entonces mover con seguridad una copia de trabajo? (Si muevo mi copia de trabajo, recibo un mensaje de error que me dice que la ruta al gitdir roto ya no es un repositorio de Git)Tenga en cuenta que esto no es lo mismo que la pregunta anteriorMover el directorio principal de un repositorio git que contiene submódulos en el sentido de que soyPor supuesto Este no es un problema relacionado con la presencia de una ruta absoluta en mi.gitmodules
expediente.