如何删除仍然在本地显示的“远程”分支?

14
一个分支是无意中创建的。我想删除它。实际上,我上周以为我已经删除了它,在bitbucket上搜索时也没有找到它,所以我倾向于认为这个问题只存在于我的本地repo中。为什么在我执行了这个操作后,这个分支仍然出现在我的本地repo中?
$ git branch -d ebc_193_157_154_order_creation_xsd_validation_and_refactored_code
error: branch 'ebc_193_157_154_order_creation_xsd_validation_and_refactored_code' not found.
$ git push bitbucket :ebc_193_157_154_order_creation_xsd_validation_and_refactored_code
error: unable to delete 'ebc_193_157_154_order_creation_xsd_validation_and_refactored_code': remote ref does not exist
error: failed to push some refs to 'bitbucket.org:trueaction/eb2c'

它仍然存在:

$ git branch -r | grep ebc_193
  bitbucket/ebc_193_157_154_order_creation_xsd_validation_and_refactored_code
$ git branch -a | grep ebc_193
  remotes/bitbucket/ebc_193_157_154_order_creation_xsd_validation_and_refactored_code

我该怎么做才能摆脱它?

1个回答

26
您正在寻找 git remote prune 命令,该命令可删除旧的远程分支。

删除 . 下的所有旧的远程跟踪分支。这些旧分支已从所引用的远程存储库中被删除,但仍然在 "remotes/" 中本地可用。

使用 --dry-run 选项,报告将被修剪的分支,但不会实际修剪它们。

在您的情况下,您需要使用 git remote prune origin

它还可以进行“checkout”操作以将分支推送到远程,然后重新删除它,但这肯定更好。 - kojiro
5
举个例子,git remote prune -n origin会报告将在origin上被清除的内容,而git remote prune origin实际上会进行清除。 - Scott Gardner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接