ОК. Так что я подумал, что мне это лизнули ... но теперь ....
У меня есть проект, который включает в себя одну небольшую библиотеку из GitHub в качестве подмодуля. В исходной версии этого суперпроекта подмодуль работает должным образом.
Однако я просто клонировал суперпроект, сделал то, что думал, что должен: «git submodule init», получил каталог подмодуля, чтобы появиться, но он пуст.
Если я сейчас попытаюсь сделать
git submodule update
я получил
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
Если я попробую
git submodule foreach git pull
я получил
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
В моем .git / config у меня есть следующее:
[submodule "external_libraries/BEACHhtml"]
url = git@github.com:interstar/BEACHhtml.git
В моих .gitmodules у меня есть это:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = git@github.com:interstar/BEACHhtml.git
У кого-нибудь есть идея, чего не хватает?
источник
ext/blah
), так и соответствующую папку подGIT_DIR
(.git/modules/ext/blah
).git submodule update
на моем сервере CI продолжался сбой, потому что он хотел, чтобы кто-то принял ключи RSA (сервер ci обычно использует соединение https, и это был первый раз, когда субмодуль подключился к ssh-соединению). Надеюсь, это сэкономит кому-нибудь час чесать голову!У меня была эта проблема (нестабильная сеть, поэтому я потерял проверку подмодуля, как это), и я решил ее, создав этот скрипт (назвал его,
git-submodule-fix
чтобы я мог запустить его какgit submodule-fix
)Если вы получите это, например, от
git submodule update
делать
источник
Решено удалением 2 каталогов и повторной загрузкой подмодуля:
external_libraries/BEACHhtml
и посмотрите в.git
файл. Его содержание должно быть примерно такимgitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
и.git/modules/external_libraries/BEACHhtml
каталоги.Отныне
git submodule update
работает без ошибок.источник
git submodule init
раньше,git submodule update
чтобы подмодуль был повторно инициализирован, тогда это сработает.Если вы читаете в 2019 году или позже, просто обновите клиент git. Работал у меня.
источник
используйте инструмент сравнения, чтобы сравнить исходный работающий клон и этот. Также, что делает
git submodule
output. Перед тем как это сделать, убедитесь, что вы указываете на одну и ту же ветку в каждом репо.Я подозреваю, что вы перешли на ветку или старую ревизию, в которой не был определен подмодуль.
надеюсь это поможет
источник
У меня была такая же проблема с подмодулем в проекте. Когда я попытался клонировать подмодуль по отдельности, это сработало.
Я пробовал все ответы выше, но безуспешно (git submodule update, ..., удаление папок подмодуля, ...).
Проблема исчезла после обновления git (с Git-1.7.11-preview20120710) до последней версии (до Git-1.8.1.2-preview20130201) на тот момент. Как ни странно, у моих коллег была и более старая версия, работала без проблем, но они были на Mac. Я на Win7 64bit.
источник