在名为Repo
的Git存储库中,有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'
(我试图理解子模块的主题,但我偶然发现了这个问题,在进行一些在线搜索后,我找不到该问题的答案。)
任何带有一些解释的命令/建议将不胜感激。
答案 0 :(得分:2)
将目录更改为子模块,然后更改为git push --delete origin Prototype
。
答案 1 :(得分:1)
您将子模块中的分支作为独立的存储库而不是超级项目删除:
cd path-to-lib1/lib1
git branch -d Prototype
git push origin --delete Prototype
cd ../.. # back to superproject