Как удалить удаленную ветку подмодуля (Git) - PullRequest
0 голосов
/ 21 сентября 2018

В Git-репозитории с именем Repo есть 4 подмодуля:

git config --file .gitmodules --name-only --get-regexp path

submodule.A/lib1
submodule.A/lib2 
submodule.lib3 
submodule.lib4

Скажем, есть удаленная ветвь с именем Prototype в подмодуле lib1, которой нетбольше нужно:

git submodule foreach 'git branch -a | grep -i prototype || true'

Entering 'path-to-lib1/lib1'
  remotes/origin/FeatureA
  remotes/origin/Prototype
Entering 'path-to-lib2/lib2'
  remotes/origin/FeatureB
Entering 'path-to-lib3/lib3'
Entering 'path-to-lib4/lib4'
  remotes/origin/FeatureC

Как вы можете удалить эту Prototype удаленную ветвь из подмодуля lib1?

Я попробовал следующее:

git push origin --delete Prototype

или

git push origin --delete origin/Prototype

или

git push origin --delete remotes/origin/Prototype

Все 3 приведенные выше команды дают ошибку:

error: unable to delete 'Prototype': remote ref does not exist 
error: failed to push some refs to 'repo-path'

( Я пытаюсь понять тему субмодулей, и я наткнулся на эту проблему, для которой мне не удалось найти ответ после некоторого онлайн-поиска. )

Любая команда / предложение с некоторым объяснением будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы удаляете ветку в подмодуле как автономное хранилище, а не в суперпроекте:

cd path-to-lib1/lib1
git branch -d Prototype
git push origin --delete Prototype
cd ../..  # back to superproject
0 голосов
/ 21 сентября 2018

Измените каталог на подмодуль, а затем git push --delete origin Prototype.

...