28
$ 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

在本地,我很好。我想删除原点上的所有杂物,所以我尝试:

$ 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'

我究竟做错了什么?

(Wild Guess)是否有一些本地缓存过时的原始内容?

回答

事实证明这是一个红鲱鱼 - 问题是,我的本地缓存已经过时,正如我所怀疑的那样。下面的两个答案都可以正常工作。

4

2 回答 2

39

您可能没有在启用 prune 选项的情况下获取。用途:git fetch --prune

于 2013-05-28T08:08:10.397 回答
22

利用:

git remote prune origin

删除已远程删除的引用。或者:

git fetch -p origin

它做同样的事情,或者:

git remote update --prune

(我不太确定为什么有这么多方法可以做到这一点。它们的行为都应该相同,但至少在某些版本的 git 中,有时一种会起作用而另一种不会,所以如果一种形式不起作用尝试另一个可能会有所帮助。)

于 2013-05-28T08:07:51.317 回答