我跑了git branch -a
git branch -a
* master remotes/origin/test remotes/origin/master
我想删除我的远程分支
我试过了
git push origin --delete remotes/origin/test
我有
错误:无法删除’remotes/origin/test’:远程引用不存在
怎么不存在?
我做了一个git branch -a,我看到它列出来了。
我错过了什么吗?
该命令显示 本地存储库git branch -a中存在的远程分支。这可能听起来有点令人困惑,但要理解它,您必须了解远程分支与远程存储库中存在的分支之间存在差异。远程分支是映射到远程存储库分支的 本地分支。 所以远程分支的集合代表远程存储库的状态。
更新远程分支列表的常用方法是使用git fetch. 这会自动从远程获取更新的分支列表,并在本地存储库中设置远程分支,同时获取您可能丢失的任何提交对象。
git fetch
但是,默认情况下,git fetch不会删除远程上不再有对应分支的远程分支。为此,您明确需要 修剪 远程分支列表:
git fetch --prune
这将自动摆脱远程不再存在的远程分支。之后,git branch -r将向您显示遥控器上确实存在的分支的更新列表:以及您可以使用git push.
git branch -r
git push
话虽如此,为了使用git push --delete,您需要指定远程存储库上的分支名称;不是您的远程分支的名称。因此,要删除分支test(由您的远程分支表示origin/test),您将使用git push origin --delete test.
git push --delete
test
origin/test
git push origin --delete test