Ответ 1
Относится ли ../extern/Lib1
к репозиторию Git?
Если это не так, Git не знает, как иметь репо-код Git для его .gitmodule
Кроме того, попробуйте:
- с пунктом назначения
lib
уже не существующим (даже пустым) - с абсолютным путем вместо относительного пути (вы можете использовать относительный, но на всякий случай, стоит попробовать здесь)
Некоторые хорошие источники на подмодулях:
- глава 8 из Git Руководство пользователя
- Страница Wiki в Git Учебник по субмодулям
и, конечно, - Git страница подменю подменю
Поскольку здесь работает только абсолютный путь, это означает, что для относительного пути нужна ссылка для сравнения.
Эта ссылка является "удаленным источником", который должен находиться в вашем файле DirName/NewRepo_withSubmodules/.git/config
, например:
$ cat .git/config
...
[remote "origin"]
url = /path/to/DirName/NewRepo_withSubmodules/.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
Если у вас есть этот раздел в файле ../DirName/NewRepo_withSubmodules/.git/config
, вы должны добавить ../extern/Lib1
в качестве подмодуля, используя относительный путь.
Все вышеизложенное описано в следующем разделе Git:
<repository>
- это URL-адрес нового репозитория оригинала подмодуля.
Это может быть абсолютный URL-адрес или (если он начинается с./
или../
), местоположение относительно репозитория оригинала суперпроекта.
Итак, если NewRepo_withSubmodules
является локальным репо Git, которое только что было создано (и, конечно, нет "происхождения" ), необходимо определить искусственное "дистанционное происхождение" (даже если начало указывает на себя), если только разрешить использование относительного URL-адреса для других репозиториев подмодулей.
Git 2.13 (Q2 2017) улучшит обнаружение начала субмодуля по умолчанию.
См. commit d1b3b81 (25 февраля 2017 г.) Стефан Беллер (stefanbeller
).
(слияние Junio C Hamano - gitster
- в совершить ae900eb, 10 марта 2017 года)
submodule init
: предупреждение о возврате к локальному пути
<repository>
- это URL-адрес нового репозитория оригинала подмодуля.
Это может быть либо абсолютный URL-адрес, либо (если он начинается с./
или../
), то местоположение относительно удалённого репозитория по умолчанию суперпроекта
(Обратите внимание, что для указания репозитория "foo.git
", который находится рядом с суперпроектом "bar.git
", вам нужно будет использовать "../foo.git
" вместо "./foo.git
" - как можно было бы ожидать при соблюдении правил относительных URL-адресов, поскольку оценка относительных URL-адресов в Git идентична оценке относительных каталогов).Пульт по умолчанию - это удаленный элемент удаленной ветки отслеживания текущей ветки.
Если такой удаленной ветки отслеживания не существует илиHEAD
отсоединен, предполагается, что "origin
" является удаленным по умолчанию.
Если суперпроект не имеет настроенного по умолчанию удаленного, суперпроект является его собственным авторитетным восходящим и текущим. вместо этого используется рабочий каталог.