Cómo cambiar el nombre de un repositorio git (proyecto) que contiene submódulos en sus subdirectorios

Nunca espero cambiar el nombre de un repositorio git, que, más específicamente, es la carpeta de nivel superior que contiene el proyecto, sería tan difícil. Sí, el proyecto contiene algunos submódulos, pero es elcarpeta de nivel superior que necesita cambiar el nombre, no elcarpeta de submódulo. Git, al parecer, registra algo extraño.caminos absolutos En sus mecanismos de submódulo.

Asumamos que

Todos tus proyectos se ubican en./tmp.Tienes unproj_master yproj_mod.Tu clonporj_master comoproj_ALL luego clonarprom_mod como un submódulo en ella.Usted cambia el nombreproj_ALL aproj_onebillion. Entonces sucede la magia negra.

Los siguientes pasos reproducirán el problema que mencioné. La versión de git que uso es:

$ git --version
git version 1.7.9.5

Inicializarproj_master.

$ cd /tmp
$ mkdir proj_master; cd proj_master
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_master"

Inicializarproj_mod.

$ cd /tmp
$ mkdir proj_mod; cd proj_mod
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_mod"

Clonproj_master comoproj_ALL y clonarproj_mod como un submódulo.

$ cd /tmp
$ git clone proj_master proj_ALL
$ cd proj_ALL
$ git submodule add /tmp/proj_mod ./mod
$ git add .; git commit -m "hello proj_ALL"
$ git status   % Everything is OK.

Rebautizarproj_ALL aproj_onebillion. Encuentra un error fatal.

$ cd /tmp
$ mv proj_ALL proj_onebillion
$ cd proj_onebillion
$ git status
fatal: Not a git repository: /tmp/proj_ALL/.git/modules/mod

Una cosa a tener en cuenta es la.git Archivo en el directorio de submódulos.

$ cat /tmp/proj_ALL/mod/.git 
gitdir: /tmp/proj_ALL/.git/modules/mod

Sí, un camino absoluto. Por primera vez, me doy cuenta de que git es consciente de algo que está fuera del alcance de la carpeta de repositorios de nivel superior.

Eso es. Repito una vez más que renombro la carpeta de proyecto de nivel superior, no la carpeta de submódulo. compruebola pregunta de schmuck, que intentó cambiar el nombre de la carpeta del submódulo, por lo tanto, no parece ser tan útil para mi problema.

Si extraño algo que debería haber sido leído antes, me disculpo. A todos los chicos, cualquier consejo es bienvenido.

Respuestas a la pregunta(4)

Su respuesta a la pregunta