如何列出远程Origin已删除但本地仍保留的Git分支(不删除分支)
列出本地残留的已删除远程分支
满足需求的命令
要找出曾推送到origin远程仓库、但远程已删除却仍保留在本地的分支,可执行以下命令:
git branch -vv | grep ': gone]' | awk '{print $1}'
各部分作用说明:
git branch -vv:展示所有本地分支,以及它们关联的远程分支和状态信息grep ': gone]':筛选出标记为gone的分支,这类分支对应的远程分支已不存在awk '{print $1}':仅提取分支名称,让输出更简洁
对搜索到的方案分析
- 方案1:仅针对已合并到master的分支,和需求不符,我们的需求不限制分支是否合并,只要远程已删除即可。
- 方案2:原方案是直接删除这类分支,但我们可以基于相同的判断逻辑,用上述命令只列出分支而不执行删除操作,
git fetch --prune会清理本地的远程跟踪引用,而我们要找的就是关联这些已清理引用的本地分支。 - 方案3:列出的是从未推送到远程的本地分支,和需求完全不匹配。
内容的提问来源于stack exchange,提问作者PatS
相关产品推荐
相关产品推荐

