2016-09-29 2 views
2

У меня есть странная проблема с Когда я добавил подмодули с помощью «мерзавца подмодуль добавить местоположение URL» «мерзавец подмодуль инициализации»мерзавец подмодуль инициализация не делает абсолютно ничего

его клонировали хранилище просто отлично, и все было нормально.

Когда я толкнул все мои изменения обратно в родительский репозиторий, добавил .gitmodules файлы, и т.д., и клонировали хранилище назад, я пытался инициализировать все подмодулей с помощью «Git подмодуль инициализации»

И ничего не происходит: (буквально ничего, не выход, никаких дополнительных файлов, это даже и не пытаться сделать что-нибудь на самом деле

Так что я интересно, что я сделал неправильно

.gitmodules:.?

bash$ cat .gitmodules 
[submodule "projects/subprojectA"] 
    path = projects/subprojectA 
    url = ssh://[email protected]/test/projectA.git 

[submodule "projects/subprojectB"] 
    path = projects/subprojectB 
    url = ssh://[email protected]/test/projectB.git 

ответ

0

Используйте опцию --recursive при клонировании. Этот параметр инициализирует весь перечисленный подмодуль:

git clone --recursive 

В другом случае, если вы хотите инициализировать подмодули мерзавца просто клонированным, вы можете использовать

git submodule update --init --recursive 
+0

git subodule update --init --recursive ничего не делает, не клонирует, ничего, я собираюсь попробовать git clone --recursive now –

+0

git clone --recursive тоже не клонирует подмодули, я использую git версию 2.10.0 –

+0

Вы сделали файл .gitmodules, верно? –

5

ки, я понял, что я сделал неправильно.

Когда я добавил GIT подмодулей, я сделал состояние GIT и он сказал мне три вещи, которые изменила

.gitmodules 
projects/subprojectA 
projects/subprojectB 

, когда я толкал все мои изменения в хранилище, я не хочу, чтобы совершить подмодули, потому что я думал, что это добавит все файлы, которые я только что клонировал, поэтому я просто сделал git, добавив .gitmodules и зафиксировал и нажал.

Но это неправильно, вам нужно сделать git commit и передать все, что он вам скажет, тогда, когда вы это сделаете, git зарегистрирует эти пути, а когда вы клонируете, это сработает.

, но если вы не совершаете эти папки, он не зарегистрирует их и не будет клонировать их при клонировании родительского репозитория.

, так что это была моя ошибка, я неправильно понял, что добавление этих каталогов добавит весь код подмодулей в родительский репозиторий, я попытался обойти это и прекратил работу.

так просто добавьте подмодули и фиксацию результатов, все это будет работать просто отлично: D

Спасибо за Protectators помощи, независимо!

+0

Спасибо !!! Вы спасли мою жизнь!!! Извините, но я так счастлив, что мне нужно поблагодарить вас, я отлаживал часами! – Zennichimaro

+0

Полностью согласен! Вы не представляете, как сильно это сводило меня с ума – SolThoth

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