git远程分支删除,但仍然出现在“分支-a”

让我们说,我有一个名叫coolbranch的分支在我的仓库中。

现在,我决定删除它(远程和本地):

 git push origin :coolbranch git branch -D coolbranch 

大! 现在分支真的被删除了。

但是当我跑步

 git branch -a 

我仍然得到:

 remotes/origin/coolbranch 

需要注意的是,当我克隆一个新的存储库,一切都很好, git branch -a不显示分支。

我想知道 – 有没有办法从branch -a删除branch -a列表而不克隆新的实例?

git remote prune origin ,如其他答案中的build议,将删除所有这样的陈旧的分支。 这在大多数情况下可能是你想要的,但是如果你想删除那个特定的远程跟踪分支,你应该这样做:

 git branch -d -r origin/coolbranch 

-r很容易忘记…)

-r在这种情况下将“列出或删除(如果与-d一起使用)远程跟踪分支”。 根据这里find的git文档: https : //git-scm.com/docs/git-branch

你尝试: git remote prune origin

从git远程文档 :

修剪

删除<名称>下的所有陈旧的远程跟踪分支。 这些陈旧的分支已经从<name>引用的远程存储库中被移除,但是仍然在“remotes / <name>”中本地可用。

使用–dry-run选项,报告将修剪哪些分支,但不实际修剪它们。

不要忘记真棒

 git fetch -p 

取得和修剪所有的起源。

在我们的特定情况下,我们使用Stash作为远程git回购。 我们尝试了以上所有,没有任何工作。 我们结束了必须做到以下几点:

 git branch –D branch-name (delete from local) git push origin :branch-name (delete from remote) 

然后,当用户去改变,他们需要做到以下几点:

 git fetch -p 
 git remote prune <remote> 

其中<remote>是源或上游的远程源名称。

例如: git remote prune origin