You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选/删除与.git/config抓取规则匹配/不匹配的Git分支

解决方案

1. 提取配置中的分支匹配规则

先从.git/config里提取origin远程的fetch规则对应的分支模式:

git config --get-regexp 'remote\.origin\.fetch' | awk '{sub(/^.*refs\/heads\//, "", $2); sub(/:.*$/, "", $2); print $2}'

执行后会输出你需要保留的分支模式:

main
staging*
jakub/*

2. 筛选匹配/不匹配的本地分支

列出符合规则的分支

把提取到的模式转成正则表达式,用grep筛选本地分支:

git branch --format='%(refname:short)' | grep -E "^(main|staging.*|jakub/.*)$"

这个命令会输出main、staging-1、jakub/feature-x这类符合规则的分支。

列出不符合规则的分支

添加-v参数反向筛选:

git branch --format='%(refname:short)' | grep -vE "^(main|staging.*|jakub/.*)$"

输出bob/foo这类需要清理的分支。

3. 删除不符合规则的分支

确认要删除的分支无误后,用xargs配合git branch -D强制删除(如果分支已合并,也可以用-d代替-D):

git branch --format='%(refname:short)' | grep -vE "^(main|staging.*|jakub/.*)$" | xargs git branch -D

注意事项

  • 执行删除前务必先运行「列出不符合规则的分支」命令,确认要删除的分支正确,避免误删重要分支。
  • 因为你的本地分支没有远程追踪关系,所以直接通过分支名匹配规则即可,无需考虑追踪状态。

内容的提问来源于stack exchange,提问作者jakub.g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:27:40