BitBucket未显示部分分支但Git Bash可见,删除分支报错如何处理?
问题解答
这些确实是本地Git缓存的远程跟踪分支引用,完全可以清除。
原因分析
你看到的这些分支是本地Git保存的远程分支快照——对应的真实分支已经在BitBucket远程仓库被删除,但本地缓存未同步更新,所以git branch -a能列出这些失效条目,但执行git push origin --delete时会报错,因为远程根本不存在这些分支了。
清除缓存的方法
一次性清理所有失效远程分支缓存
执行以下命令,Git会自动比对本地缓存与远程仓库的分支状态,删除所有已在远程不存在的跟踪分支:git remote prune origin若想先预览会删除哪些分支(不实际执行清理),可添加
--dry-run参数:git remote prune origin --dry-run手动删除单个失效远程跟踪分支
针对特定分支,使用-r选项指定操作远程跟踪分支:git branch -d -r origin/<name_of_branch>自动清理(长期生效)
配置Git,让每次执行git fetch或git pull时自动清理失效的远程分支缓存:git config --global fetch.prune true
内容的提问来源于stack exchange,提问作者VilleLipponen
相关产品推荐
相关产品推荐

