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
相关推荐
vibecoding日记11 小时前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记21 小时前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger2 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
西岸行者2 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
starlaky3 天前
Django入门笔记
笔记·django
勇气要爆发3 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
勇气要爆发3 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain