本文目录导读:

我来介绍几种批量删除Git分支的方法:
删除本地分支
删除所有本地分支(除了当前分支)
git branch | grep -v "^*" | xargs git branch -d
删除特定模式的分支
# 删除所有以 "feature/" 开头的分支 git branch | grep "feature/" | xargs git branch -d # 删除所有已合并的分支 git branch --merged | grep -v "^*" | xargs git branch -d
删除远程分支
批量删除远程分支
# 删除远程所有以 "feature/" 开头的分支
git branch -r | grep "origin/feature/" | sed 's/origin\///' | xargs -I {} git push origin --delete {}
# 或使用更简单的方式
git branch -r | grep "feature/" | sed 's/origin\///' | xargs git push origin --delete
完整的Shell脚本
创建一个 delete-git-branches.sh 文件:
#!/bin/bash
# 批量删除Git分支脚本
echo "====== Git 批量分支删除工具 ======"
echo "1. 删除本地已合并分支"
echo "2. 删除本地特定模式分支"
echo "3. 删除远程特定模式分支"
echo "4. 删除本地和远程的特定模式分支"
echo "================================"
read -p "请选择操作 (1-4): " choice
case $choice in
1)
echo "删除本地已合并分支(保留当前分支和main/master)..."
git branch --merged | grep -v "\*\|master\|main" | xargs -n 1 git branch -d
echo "完成!"
;;
2)
read -p "输入要删除的分支模式(如 feature/): " pattern
echo "删除本地以 '$pattern' 开头的分支..."
git branch | grep "^$pattern" | xargs -n 1 git branch -d
echo "完成!"
;;
3)
read -p "输入要删除的远程分支模式(如 feature/): " pattern
echo "删除远程以 '$pattern' 开头的分支..."
git branch -r | grep "origin/$pattern" | sed 's/origin\///' | xargs -n 1 git push origin --delete
echo "完成!"
;;
4)
read -p "输入要删除的分支模式(如 feature/): " pattern
echo "1. 删除本地分支..."
git branch | grep "^$pattern" | xargs -n 1 git branch -d
echo "2. 删除远程分支..."
git branch -r | grep "origin/$pattern" | sed 's/origin\///' | xargs -n 1 git push origin --delete
echo "完成!"
;;
*)
echo "无效选择"
exit 1
;;
esac
安全版本(带确认)
#!/bin/bash
delete_branch_safe() {
local branch_name=$1
echo "准备删除分支: $branch_name"
read -p "确认删除? (y/n): " confirm
if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
git branch -d $branch_name
echo "已删除: $branch_name"
else
echo "跳过: $branch_name"
fi
}
# 列出所有要删除的分支
branches_to_delete=$(git branch | grep "feature/")
for branch in $branches_to_delete; do
delete_branch_safe $branch
done
常用的一行命令
# 删除30天前创建的分支(需要git-extras) git-delete-merged-branches # 删除除了master/main之外的所有本地分支 git branch | grep -v "master\|main" | xargs git branch -D # 强制删除所有本地分支(小心使用!) git branch | grep -v "master\|main\|develop" | xargs git branch -D
注意事项
- 备份重要代码:删除前确保分支代码已合并或备份
- 使用
-d而不是-D:-d只删除已合并分支,-D强制删除 - 先检查再删除:先用
echo测试要删除的分支列表 - 远程分支删除不可恢复:远程分支删除后需要管理员权限才可能恢复
测试命令(安全预览)
# 只显示要删除的分支,不实际删除 git branch | grep "feature/" | xargs echo "将要删除: "
这些脚本可以根据你的具体需求进行修改和组合使用。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播