小编典典

当我删除远程分支时,Git 说远程引用不存在

all

我跑了git branch -a

* master
  remotes/origin/test
  remotes/origin/master

我想删除我的远程分支

我试过了

git push origin --delete remotes/origin/test

我有

错误:无法删除’remotes/origin/test’:远程引用不存在

怎么不存在?

我做了一个git branch -a,我看到它列出来了。

我错过了什么吗?


阅读 104

收藏
2022-06-14

共1个答案

小编典典

该命令显示 本地存储库git branch -a中存在的远程分支。这可能听起来有点令人困惑,但要理解它,您必须了解远程分支与远程存储库中存在的分支之间存在差异。远程分支是映射到远程存储库分支的
本地分支。 所以远程分支的集合代表远程存储库的状态。

更新远程分支列表的常用方法是使用git fetch. 这会自动从远程获取更新的分支列表,并在本地存储库中设置远程分支,同时获取您可能丢失的任何提交对象。

但是,默认情况下,git fetch不会删除远程上不再有对应分支的远程分支。为此,您明确需要 修剪 远程分支列表:

git fetch --prune

这将自动摆脱远程不再存在的远程分支。之后,git branch -r将向您显示遥控器上确实存在的分支的更新列表:以及您可以使用git push.

话虽如此,为了使用git push --delete,您需要指定远程存储库上的分支名称;不是您的远程分支的名称。因此,要删除分支test(由您的远程分支表示origin/test),您将使用git push origin --delete test.

2022-06-14