Git for-each-ref仍显示已删除分支的原因及解决方法
问题解答
为什么删除远程分支后仍会显示?
Git本地会缓存远程仓库的分支信息,你执行的git for-each-ref refs/remotes读取的是本地缓存的远程分支引用,而非实时查询远程仓库状态。远程分支被删除后,本地缓存不会自动同步更新,旧的分支记录会留在本地refs/remotes目录下,导致命令依然显示已删除的分支。
如何让命令不再显示已删除的分支?
有两种常用方式更新本地缓存,清理失效的远程分支引用:
方法1:自动清理所有失效分支
执行以下命令,拉取远程最新信息的同时,自动删除本地已失效的远程分支缓存:
git fetch --prune
也可以简写为:
git fetch -p
方法2:手动清理单个失效分支
如果只需清理特定的已删除远程分支,可直接删除本地对应的缓存引用,比如清理origin/old-branch:
git update-ref -d refs/remotes/origin/old-branch
完成上述操作后,再运行你原本的git for-each-ref命令,就不会再显示已删除的远程分支了。
内容的提问来源于stack exchange,提问作者MB34
相关产品推荐
相关产品推荐

