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
相关推荐
是宇写的啊10 小时前
Git远程操作
git
遇乐的果园12 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
遇乐的果园13 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
摇滚侠14 小时前
Java 全栈开发实战教程 课程笔记 29-33
笔记
茯苓gao15 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
whyTeaFo15 小时前
GAMES101: Lecture 9: Shading 3(Texture Mapping cont.) ppt笔记
笔记
chase。17 小时前
【学习笔记】PointWorld:迈向通用机器人操控的3D世界模型
笔记·学习·机器人
our_times18 小时前
# Git 高频命令实战指南:从日常开发到进阶协作
git
PBitW19 小时前
git 中容易遗忘的点 (二) ⚡⚡⚡
前端·git·面试
PBitW19 小时前
git 中容易遗忘的点 (三) 🚀🚀🚀
前端·git·面试