0

У меня есть родительский репозиторий git с тремя ветвями в нем. Я также использую subodule repo, который имеет 3 ветви с одинаковыми именами, а файл .gitattributes в каждой ветви родительского репо указывает на ветвь подмодулей с тем же именем. Это все хорошо и хорошо, но вопрос у меня есть, когда я делаю GIT checkout BRANCH в родительском репо, мне всегда нужно выполнить обновление подмодуля git после, или файлы в каталоге подмодуля не будут обновлены, чтобы отразить Правильная ветвьGit checkout при использовании подмодулей

Есть ли простой способ автоматизировать это, так что каждый раз, когда я делаю проверку, файлы подмодулей обновляются, чтобы отражать правильную ветку?

ответ

1
git checkout master & git submodule foreach git checkout master 

Где master это название выбранной ветви

Вы можете добавить hookpost-checkout и сделать это действие каждый раз, когда вы звоните git checkout автоматически. Вам нужно создать файл .git/hooks/post-checkout, который будет выглядеть как:

branch=$(git rev-parse --symbolic --abbrev-ref $1) 
git submodule foreach git checkout $branch 

Надеется, что это поможет

+0

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

+0

Я обновил свой ответ git hooks. Если это поможет, пожалуйста, не забывайте отмечать ответ как решенный :) –

+0

спасибо, что имеет смысл –