Перемещение рабочей копии git, содержащей подмодули
Недавнее изменение в Git изменило способ.git
каталог обрабатывается при использовании подмодулей. Вместо того, чтобы иметь один.git
за подмодуль, теперь все вкорневой уровень " .git
каталог (тот, который соответствует рабочей копии, включая подмодули).
Затем в каждом подмодуле создается файл, который указывает на новое местоположение.git
каталог.
Вмой проектУ меня есть следующее.gitmodules
файл:
[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
Когда я делаюgit clone --recursive
Тогда я получу:
$ cat cmake/.git
gitdir: /home/moulard/profiles/default-x86_64-linux-ubuntu-12.04.1/src/unstable/roboptim/roboptim-core/.git/modules/cmake
Я в настоящее время использую Git 1.8.1.5.
Мои вопросы:
Почему это поведение изменилось? Я неЯ не вижу никакой очевидной выгоды для этой новой стратегии.Как я могу безопасно переместить рабочую копию? (если я перемещаю свою рабочую копию, я получаю сообщение об ошибке, сообщающее, что путь к сломанному gitdir больше не является хранилищем Git)Обратите внимание, что это не то же самое, что предыдущий вопросПеремещение родительского каталога репозитория git, который содержит подмодули в том смысле, что яконечно это не проблема, связанная с наличием абсолютного пути в моем.gitmodules
файл.