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]不影响CCD_ 7。git remote prune upstream
明显变异导致fatal: 'upstream' does not appear to be a git repository ...
尝试:
git update-ref -d refs/remotes/upstream/bugfix/corrupted-deb
有时你可能会有一个符号参考,比如:
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
git branches -a
只是告诉您在.git
文件夹中本地有一个文件(在某个时刻通过git fetch
创建(。只需移除它:
.git/refs/remotes/upstream/bugfix/corrupted-deb
举个例子,我创建了一个小型测试项目,并手动创建了指向我所做的单个提交的sha的文件.git/refs/remotes/test/feature/mybranch
。
运行git branch -a
现在产生:
/c/dev/remotetest (master)
$ git branch -a
* master
remotes/test/feature/mybranch
删除文件.git/refs/remotes/test/feature/mybranch
后,运行git branch -a
现在产生:
/c/dev/remotetest (master)
$ git branch -a
* master
/Martin