为何本地Git显示分支多于Azure DevOps Server服务端?该如何修复?
问题成因
Git本地仓库会自动缓存所有远程分支的引用记录,服务端删除分支的操作不会主动同步到本地。git branch -r命令返回的是本地缓存的远程分支列表,而非服务端实时分支状态,因此会出现服务端分支已删除、本地仍可查询到的不一致情况。
解决方法
- 基础操作(仅同步远程分支状态)
执行以下命令,拉取最新远程内容的同时,删除本地缓存中所有服务端已不存在的远程分支引用:
git fetch origin --prune
注:如果你的远程仓库别名不是origin,可先执行
git remote -v查询实际别名后替换命令中的origin即可。该操作仅清理远程分支的本地缓存记录,不会影响你本地自行创建的未提交分支,安全无风险。
执行完成后再次运行git branch -r,显示的远程分支就会和Azure DevOps Server网页端完全一致。
- 可选操作(同时清理本地已合并的无用分支)
如果需要同步清理本地已经合并到主分支的废弃本地分支,可以先切换到主分支(此处以main为例,可替换为你实际的主分支名如master):
git checkout main
再执行批量删除命令:
git branch --merged | grep -v "main" | xargs git branch -d
内容的提问来源于stack exchange,提问作者finder2
相关产品推荐
相关产品推荐

