Есть ли способ переключить ветку подмодуля git, пока ветка новая, но ничего не изменилось - PullRequest
0 голосов
/ 28 сентября 2019

для меня есть некоторая проблема при использовании подмодулей git.

Первый шаг: перейти в подмодуль dir, checkout new-b; push --set-upstream origin new-b;

Второй шаг: cd parent dir; git config -f .gitmodule submodule.<submodule-name>.branch new-b;

Третийшаг: в родительском каталоге, exec : git add .; git commit -m"xxx"; git push;

Четвертый шаг: cd tmp; git clone parent-dir; cd parent-dir; git submodule update --init; git submodule update --remote;

Пятый шаг: git submodule status;

Результат состояния показывает, что подмодуль все еще находится в исходной ветви.

Ветвь new-b будет выбираться до тех пор, пока не будет выполнено «submodule update --remote» после некоторого нового коммита в подмодуле.и ветвь в статусе в родительском директории все еще является оригинальной (новая ветка выбирается только для локальной)

единственный способ изменить конфигурацию субмодуля в родительском директории:

1 cd sub; git checkout -b new-b;

Измените что-нибудь, например, отредактируйте README.md;

git commit -m "edited" -a

git push --set-upstream origin new-b

2 cd parent;

git config -f .gitmodules submodule.sub.branch new-b

git add .gitmodules sub

git commit -m"switch branch"

git push

, затем проверьте, изменяется ли ветвь sub в родительском

git clone parent

cd parent

git submodule update --init

git submodule status

, так есть ли способ переключить ветку подмодуля git, пока ветвь новая, но ничего не изменилось?

...