Git. Работа с субмодулями из директории основного проекта?

Здравствуйте.

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


Всё разделили, всё хорошо. Структура примерно такая:

/www/project/

/www/project/submodule/

/www/submodule/


Если субмодуль править из /www/submodule/ то всё хорошо. Изменения вносятся, в основном проекте git submodule update всё подцепляет, и т.д.

Но если войти в /www/project/submodule/ и вносить правки оттуда, то изменения в субмодуль не вносятся. Например во время git push он сообщает «Already up-to-date», или о том, что нужно сначала сделать git pull, но когда его делаешь, опять «Already up-to-date».


На наш взгляд схема должна быть примерно такой:

Идём в /www/project/submodule/

Вносим изменения в субмодуль.

Пушим изменения в субмодуль.

Идём в корень проекта.

Делаем git submodule update

Делаем commit/push в основном проекте.

Profit!


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

Подскажите пожалуйста что мы делаем не так?

Нормально ли работать с субмодулем из директории основного проекта? И почему возникли проблемы?

Заранее спасибо.
  • Вопрос задан
  • 6343 просмотра
Решения вопроса 1
Насколько я помню при создании сабмодуля HEAD ссылается не на бранч, а на конкретный коммит.
Попробуйте:
cd /www/project/submodule/
git checkout master

Внесите изменения. После:
git commit
git push -u origin master
cd /www/project
git add submodule
git commit submodule -m "Updated submodule"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы