2014-09-29 3 views
5

Я пытаюсь изменить пульт на подмодуле согласно these instructions.git subodule sync не работает

После изменения и сохранения .gitmodules, то делать git submodule sync мой подмодуль не изменилось, хотя мой файл .git/config был обновлен в соответствии с новым удаленного URL в .gitmodules.

Я также пробовал git submodule sync --recursive и делаю rm -rf .git/modules/<mySubmodule> в соответствии с this tip без каких-либо различий. Фактически, запустив последнюю команду, тогда git submodule sync снова дает fatal: Not a git repository: ../.git/modules/<mySubmodule>. Какие-нибудь советы?

Первоначально я добавил субмодуль к проекту через git submodule add git://<mySubmodule-url> согласно git docs.

Редактировать

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

$> mkdir myRepo 
$> cd myRepo 
myRepo$> git init . 
myRepo$> git submodule add https://<path/to/my/repo>.git 
myRepo$> vim .gitmodules 
# change submodule url to https://<path/to/another/repo>.git 
myRepo$> git submodule synC# updates my .git/config file with the new submodule url, but all my files in the submodule are still from the old url 
myRepo$> git submodule sync --recursive # doesn't do anything 
myRepo$> git submodule update --init --recursive # doesn't do anything either 
myRepo$> rm -rf .git/modules/<mySubmodule> # tip from SO comment linked above 
myRepo$> git submodule sync 
fatal: Not a git repository: ../.git/modules/<mySubmodule> 
+0

Просто 'обновления подмодуль GIT --init --recursive' не будет работать (после' мерзавец подмодуль синхронизации --recursive')? – VonC

+0

Нет. Я все еще вижу оригинальный подмодуль. – acannon828

+0

См. Http://stackoverflow.com/questions/3336995/git-will-not-init-sync-update-new-submodules –

ответ

8

Это похоже на раздражение. Не идеал, но следующий, кажется, работает для меня

git submodule foreach git pull --rebase 
+0

Да, это сработало! Определенно не идеально, но я возьму его. Можете ли вы объяснить свой ответ еще немного, прежде чем я приму это? Кроме того, смогли ли вы воспроизвести мою проблему? – acannon828

+1

Я вижу такое же поведение с Git 2.1.1. Я честно не уверен, что это «ожидаемый» или ошибка. Субмодулы всегда были несколько хоккейными. Что касается того, почему это работает - это заставляет git идти в подмодуль и делать выборку (которая в моем случае переводится в вынужденную ветку снова - опять же, не знаю почему). –

+0

Я пробовал эту команду и ничего не делал. –

Смежные вопросы