So benennen Sie ein Git-Repo (Projekt) um, das Untermodule in seinen Unterverzeichnissen enthält

Ich erwarte nie, dass das Umbenennen eines Git-Repos, das genauer gesagt der Ordner auf oberster Ebene ist, in dem sich das Projekt befindet, so schwierig ist. Ja, das Projekt enthält einige Submodule, aber es ist dasOrdner der obersten Ebene das muss umbenannt werden, nicht dieModulordner. Anscheinend nimmt Git etwas Seltsames aufabsolute Pfade in seinen Submodulmechanismen.

Nehmen wir das an

Alle Ihre Projekte finden in/tmp.Du hast eineproj_master undproj_mod.Du klonstporj_master wieproj_ALL dann klonenprom_mod als Submodul drin.Sie benennen umproj_ALL zuproj_onebillion. Dann passiert schwarze Magie.

Die folgenden Schritte werden das Problem reproduzieren, das ich erwähnte. Die Version von Git, die ich benutze, ist:

$ git --version
git version 1.7.9.5

Initialisierenproj_master.

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

Initialisierenproj_mod.

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

Klonproj_master wieproj_ALL und klonenproj_mod als Submodul.

$ 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.

Umbenennenproj_ALL zuproj_onebillion. Es ist ein schwerwiegender Fehler aufgetreten.

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

Eine Sache zu bemerken ist die.git Datei im Untermodulverzeichnis.

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

Ja, ein absoluter Weg. Zum ersten Mal stelle ich fest, dass git etwas außerhalb des Bereichs des Repo-Ordners der obersten Ebene erkennt.

Das ist es. Ich wiederhole dies ein weiteres Mal, wenn ich den Projektordner der obersten Ebene und nicht den Modulordner umbenenne. ich überprüfeschmucks frage, der versucht hat, den Submodul-Ordner umzubenennen, scheint daher für mein Problem nicht so hilfreich zu sein.

Wenn ich etwas vermisse, das vorher hätte gelesen werden sollen, entschuldige ich mich. Jeder Rat ist willkommen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage