首页 > 解决方案 > 'git branch -a' 显示不再存在的上游存储库

问题描述

git branch -a节目

master
remotes/origin/master
remotes/upstream/bugfix/corrupted-deb
... (many more remotes/upstream branches)

存储库upstream不再存在。如何永久删除僵尸分支remotes/upstream/bugfix/corrupted-deb等?

文件.git/config包含不超过

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@<myurl>
    fetch = +refs/heads/*:refs/remotes/origin/*

任何有意提及的upstream内容早已不复存在。

命令git remote prune origin[ https://stackoverflow.com/questions/8766525]不影响upstream。明显的变体git remote prune upstream导致fatal: 'upstream' does not appear to be a git repository ...

标签: git

解决方案


尝试:

git update-ref -d refs/remotes/upstream/bugfix/corrupted-deb

有时您可能有一个象征性的 ref,例如:

remotes/origin/HEAD -> origin/master

要删除remotes/origin/HEAD,请运行:

git symbolic-ref -d refs/remotes/origin/HEAD

要删除所有remotes/upstream,请尝试:

git for-each-ref refs/remotes/upstream --format="%(refname)" | while read ref;do
    git update-ref -d ${ref}
done

推荐阅读