如何批量删除开源项目中已合并的补丁分支?
批量删除已合并的GitHub补丁分支
清理本地已合并分支
- 更新本地远程分支缓存,移除已在远程删除的分支信息:
git fetch --prune - 切换到项目的主分支(如
main或master):git checkout main - 拉取主分支的最新代码:
git pull origin main - 批量删除所有已合并到当前主分支的本地分支:
执行前可以先替换git branch --merged | grep -v "\*" | xargs git branch -dgit branch -d为echo,预览将要删除的分支列表,确认无误后再执行删除。
清理远程已合并分支
方法一:使用GitHub CLI(推荐)
如果已安装GitHub CLI(gh),可以直接通过PR状态批量删除:
gh pr list --state merged --json headRefName --jq '.[].headRefName' | xargs gh repo delete-branch
这个命令会自动筛选所有已合并PR对应的远程分支并删除。
方法二:使用原生Git命令
- 同样先更新远程分支缓存:
git fetch --prune - 批量删除已合并到远程主分支的分支:
替换git branch -r --merged origin/main | grep -v "origin/main" | sed 's/origin\///' | xargs -I {} git push origin --delete {}origin/main为你的项目主分支名(如origin/master),同样可以先替换git push origin --delete {}为echo预览分支列表。
注意:删除分支前务必确认这些分支已不再需要,已合并的分支通常不会包含未同步的代码,但谨慎起见建议先备份或确认分支状态。
内容的提问来源于stack exchange,提问作者POBrien333
相关产品推荐
相关产品推荐

