Как переименовать git-репо (проект), который содержит подмодули в своих подкаталогах

Я никогда не ожидал, что переименование git-репо, которое, в частности, является папкой верхнего уровня, в которой хранится проект, было бы так сложно Да, проект содержит несколько подмодулей, но этоtop-level folder что нужно переименовать, а неsubmodule folder, Git, кажется, записывает некоторые странныеabsolute paths в его подмодульных механизмах.

Предположим, что

All your projects locate in /tmp. You've got a proj_master and proj_mod. You clone porj_master as proj_ALL then clone prom_mod as a submodule in it. You rename proj_ALL to proj_onebillion. Then black magic happens.

Следующие шаги воспроизведут проблему, о которой я говорил. Версия git, которую я использую:

$ git --version
git version 1.7.9.5

Initialize proj_master.

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

Initialize proj_mod.

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

Clone proj_master as proj_ALL and clone proj_mod as a submodule.

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

Rename proj_ALL to proj_onebillion. Encounter a fatal error.

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

Стоит отметить, что.git файл в каталоге подмодулей.

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

Да, абсолютный путь. Впервые я понимаю, что git знает о чем-то, выходящем за рамки папки репо верхнего уровня.

Вот и все. Я повторяю это еще раз, когда я переименовываю папку проекта верхнего уровня, а не папку подмодуля. я проверяювопрос чмо, который пытался переименовать папку submodule, поэтому, кажется, не так полезно для моей проблемы.

Если я пропущу что-то, что должно было быть прочитано раньше, я прошу прощения. Для всех парней, любой совет приветствуется.

Ответы на вопрос(4)

Ваш ответ на вопрос