如何修复陈旧的git branch -r(删除幻影git分支)?

kfm*_*e04 26 git

$ git branch
  develop
* feature/bug_76
  master
$ git branch -r
  origin/HEAD -> origin/master
  origin/develop
  origin/feature/implement_IBResponder
  origin/master
  origin/origin
  origin/sculptor_strategy
Run Code Online (Sandbox Code Playgroud)

在当地,我很好.我想删除原产地上的所有内容,所以我尝试:

$ git push origin :origin/sculptor_strategy
error: unable to delete 'origin/sculptor_strategy': remote ref does not exist
error: failed to push some refs to 'git@gitlab:pitbull.git'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

(Wild Guess)是什么原产地的一些本地缓存?

回答

事实证明这是一个红鲱鱼 - 问题是,我的本地缓存是陈旧的,我怀疑.以下两个答案都可以.

pmr*_*pmr 36

您可能无法启用修剪选项.使用:git fetch --prune.


tor*_*rek 21

使用:

git remote prune origin
Run Code Online (Sandbox Code Playgroud)

删除已远程删除的引用.要么:

git fetch -p origin
Run Code Online (Sandbox Code Playgroud)

它做同样的事情,或者:

git remote update --prune
Run Code Online (Sandbox Code Playgroud)

(我不确定为什么有这么多方法可以做到这一点.它们应该都是一样的,但至少在某些版本的git中,有时一个会工作而另一个不会,所以如果一个表格不起作用它可能有助于尝试另一个.)