如何自动删除GitHub Fork仓库中生成的所有patch分支?
批量删除GitHub上的patch系列分支
哈哈,这种“帮人改完拼写提交PR后,分支就扔那儿不管堆成山”的情况我太有共鸣了!一个个手动删确实够烦的,给你几个高效的批量删除方案,分分钟清掉这些patch分支:
方法1:用GitHub CLI(最省心的方式)
如果你还没装GitHub CLI,先安装好并登录你的GitHub账号(各个系统都有对应的安装方式,直接搜就行)。
- 先确认要删除的分支列表,避免误删:
gh repo view --branches | grep "patch-"
- 确认列表里全是你要删的patch分支后,执行批量删除命令:
gh repo view --branches | grep "patch-" | awk '{print $1}' | xargs -I {} gh repo delete-branch {}
简单解释下:grep过滤出所有以patch-开头的分支,awk提取分支名称,xargs把每个分支名传给删除命令,一次性搞定所有分支。
方法2:纯Git命令+Shell脚本(无需额外工具)
不想装GitHub CLI的话,直接用Git原生命令也能搞定:
- 先拉取最新的远程分支信息,确保本地能看到所有远程分支:
git fetch --prune
- 先列出所有远程的patch分支,确认目标:
git branch -r | grep "origin/patch-"
- 确认无误后,批量删除远程分支:
git branch -r | grep "origin/patch-" | sed 's/origin\///' | xargs -I {} git push origin --delete {}
这里sed 's/origin\///'是把分支名里的origin/前缀去掉,因为Git删除远程分支的格式是git push origin --delete <分支名>。
方法3:顺便清理本地的patch分支(如果有的话)
如果你的本地仓库也同步了这些patch分支,也可以一起批量删除:
git branch | grep "patch-" | xargs git branch -D
-D是强制删除分支,因为这些分支已经合并到主分支了,不用担心代码丢失。
重要提醒
执行删除命令前,一定要先用grep的命令确认要删除的分支列表!别不小心删掉了其他重要分支哦~
内容的提问来源于stack exchange,提问作者user5389726598465




