2015-09-07 4 views
4

добавить подмодуль, используя следующую командуКак изменить git subodule отслеживание удаленной ветви?

мерзавца подмодуль добавить -b Br1 [репо]

Файл .gitmodules имеет входную ветвь = BR1. Теперь я хочу переключить ветвь на br2. Я могу перейти в папку подмодуля и переключить ветвь, но это не обновляет файл .gitmodules.

Как я могу это сделать?

+0

Почему вы хотите это сделать? Если вы думаете об этом, если вы измените ветвь, которую отслеживает подмодуль, то не может ли это выбросить код другого? Субмодулы - одна из областей Git, которая очень сложна. Может возникнуть проблема с вашей проблемой. –

+1

Я работаю над стабильной ветвью br1 и хочу протестировать на экспериментальном br2. Если я не обновляю файлы .gitmodules, другие пользователи не смогут его увидеть. – Rohit

ответ

1

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

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

git diff 

вы увидите что-то вроде

-Subproject commit 829b869657418fdac7964c3671ed9a378f09c032 
+Subproject commit 829b869657418fdac7964c3671ed9a378f09c032-dirty 

Если вы хотите каждый использует новый подмодуль ветку, вы должны совершить & толчок, что изменение (новый подмодуль номер зафиксированной) в ваш верхний модуль репо.

В основном это работает как ссылка на конкретную версию подмодуля.

Посмотрите здесь для подробностей: https://git-scm.com/book/en/v2/Git-Tools-Submodules#Starting-with-Submodules

+0

Я не видел diff, потому что я создал ветку, и это не делает ничего, кроме указателя! – Rohit

+0

Но все же, речь идет о фиксации. Если вы хотите обновить фиксацию * и * изменить ветвь, это правильный рабочий процесс для редактирования файла .gitmodules напрямую? – Pxtl

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