git笔记之清理本地存在但远程不存在的分支

git笔记之清理本地存在但远程不存在的分支

下面这段 Bash 脚本的作用是:在本地 Git 仓库中查找那些本地存在但远程(origin)不存在的分支(除去 main、master、dev 这些保护分支),并提示用户确认后删除这些本地分支。

git 复制代码
#!/bin/bash

# 获取远程分支列表
remote_branches=$(git branch -r | sed 's/origin\///' | tr -d ' ')

# 获取本地分支列表
local_branches=$(git branch | tr -d ' *')

# 找出本地有但远程没有的分支
branches_to_delete=""
for branch in $local_branches; do
    if [[ ! " ${remote_branches[@]} " =~ " ${branch} " ]] && 
       [[ "$branch" != "main" ]] && 
       [[ "$branch" != "master" ]] && 
       [[ "$branch" != "dev" ]]; then
        branches_to_delete+=" $branch"
    fi
done

# 删除这些分支
if [ -n "$branches_to_delete" ]; then
    echo "将要删除的分支: $branches_to_delete"
    read -p "确认删除这些分支?(y/N): " confirm
    if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
        echo "$branches_to_delete" | xargs -n 1 git branch -D
        echo "分支已删除"
    else
        echo "操作取消"
    fi
else
    echo "没有需要删除的分支"
fi
相关推荐
码途漫谈32 分钟前
Easy-Vibe开发篇阅读笔记(四)——前端开发之结合 Agent Skills 美化界面
人工智能·笔记·ai·开源·ai编程
习惯就好zz2 小时前
Git 交互式 rebase 实战:将后续修改合并到历史提交
git
糖炒栗子03263 小时前
【笔记】高分卫星影像 TIF 切片处理
笔记
Nice_Fold3 小时前
Kubernetes DaemonSet、StatefulSet与Service(自用笔记)
笔记·容器·kubernetes
ZhiqianXia6 小时前
《The Design of Design》阅读笔记
前端·笔记·microsoft
祁白_7 小时前
nmap工具笔记整理
笔记·web安全·测试
南境十里·墨染春水7 小时前
C++笔记 STL——set
开发语言·c++·笔记
d111111111d7 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
LZYmarks7 小时前
小白买车笔记
笔记
码途漫谈8 小时前
Easy-Vibe开发篇阅读笔记(二)——前端开发之Figma与MasterGo入门
人工智能·笔记·ai·开源·ai编程·figma