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
相关推荐
噜~噜~噜~20 分钟前
操作系统笔记-2.3.6 管程
笔记·操作系统
aprilaaaaa3 小时前
(TC397 学习笔记)二、ICU和TIM的时钟计算
笔记·学习·fpga开发
hongmai6668884 小时前
ESP32-WROVER-IE-N4R8:外接天线+8MB内存,专治信号焦虑
笔记·单片机·嵌入式硬件·microsoft·risc-v
Persistent的粽子!4 小时前
C++:类与对象(一)
开发语言·c++·经验分享·笔记
xian_wwq4 小时前
【学习笔记】-深度认知系列-第8讲主流AI模型横向评测——GPT、Claude、Gemini、盘古、文心、通义
人工智能·笔记·学习
Patrick_Wilson4 小时前
为什么gitlab的MR会默认有一个merge commit
前端·git·gitlab
是乐乐啊呀5 小时前
版本控制 GIT 和 SVN
git·svn
晨欣5 小时前
NVIDIA GPU 架构演进学习笔记(GPT-5.6 Terra 生成)
笔记·学习·gpu·显卡·nvidia·英伟达
一条破秋裤6 小时前
17_ADC原理与转换模式
笔记·stm32·学习
知产xiao_xin6 小时前
C语言运算符的种类、运算优先级和结合性
笔记