Подмодуль Git - Сменить банч - PullRequest
1 голос
/ 19 марта 2019

У меня вопрос по поводу подмодулей в git:

У меня есть репозиторий «SuperRepo» с подмодулем «A».Подмодуль «А» указывает на ветку «развиваться» в .gitmodules.Если я создаю новую ветку в «SuperRepo», допустим, что «fancyFeature», я иногда меняю ветку подмодуля «A» на новую ветку с тем же именем.Это не всегда так, но иногда.

Я могу отправить это изменение и подмодуль указывает на коммит в ветке "fancyFeature".Но так как .gitmodules все еще указывает на развитие, у меня всегда есть непривязанные головы (по крайней мере, это мое объяснение).Есть ли какой-нибудь способ изменить ветку подпункта без отсоединенной головы?

Спасибо за вашу помощь!

PS: Если я изменю .gitmodules на "fancyFeature", я не получу отсоединенные головы.Отсюда мой вывод ...

1 Ответ

0 голосов
/ 19 марта 2019
Подмодули

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

Но вы можете:

  • установить submodule.XXX.branch (в `.gitmodules) в ветку

  • перейти в HEAD этой ветки с

    git submodule update
    

    Эта команда подразумевает --checkout по умолчанию.

  • создайте ветку вручную и используйте

    git submodule update --rebase
    git submodule update --merge
    

    Это сохранит вашу ветвь.

Вы можете переопределить метод обновления по умолчанию, установив submodule.XXX.update to rebase, merge или checkout.

Вы можете добавить --remote, чтобы получить ветку подмодуля и объединить / перебазировать / оформить этот коммит.

Чтобы создать ветки, выможет перебирать субмодули как

git submodule foreach 'git -B feature-branch || :`
...