@SomeoneUnknown

Как правильно синхронизировать git submodules?

Вопрос довольно наивный, но я всю жизнь старался избегать git submodules а тут достался проект, где они уже есть. Прошу помочь навести ясность.

Есть проект X, он в качестве субмодуля использует проект Y. Когда я делаю git clone --recursive project_X он выкачивает какую-то очень старую версию Y.

Вопросы:
  1. Что нужно сделать, чтобы скачался текущий активный master проекта Y?
  2. Как после обновления на предыдущем шаге зафиксировать Y? Т.е. даже есть master Y уедет вперед, по git clone --recursive project_X бралась строго определенная версия
  3. Можно ли сделать так, чтобы всегда брался master Y?
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
Все оно правильно делает. Это делается для того чтобы, когда ты запулишь изменения в основном, то ничего не сломалось из-за изменений в модуле.
Так например, при комите в модуле был некий метод Super, но модуль получил обновление и теперь этого метода нет. Основной репозиторий был реализован с расчетом на этот метод Super, если сейчас просто запулить последнюю версию модуля, то все сломается.

Если нужно обновиль модуль, то заходим в него и делаем git pull, а потом, в основном репозитории, комитим обновление модуля.

1. Что нужно сделать, чтобы скачался текущий активный master проекта Y?
git pull в модуле

2. Как после обновления на предыдущем шаге зафиксировать Y? Т.е. даже есть master Y уедет вперед, по git clone --recursive project_X бралась строго определенная версия
Сделать комит в основном репозитории с новой версией

3. Можно ли сделать так, чтобы всегда брался master Y?
Нет. Так делать не нужно поскольку основной репозиторий может сломаться.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы