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
相关推荐
来自大山深处的Doge_6 分钟前
解决Git提交更新更改时出错: detected dubious ownership in repository at ...
git
w2018001 小时前
二年级下册语文看图写话作文:蛋壳的奇妙之旅
笔记
daanpdf1 小时前
初三中考英语作文模板万能句型及范文大全电子版
笔记
nnsix1 小时前
设计模式 - 建造者模式 笔记
笔记·设计模式·建造者模式
穗余3 小时前
2026 AI x Web3 School共学营笔记-Day1
人工智能·笔记·web3
sheeta19983 小时前
LeetCode 每日一题笔记 日期:2026.05.20 题目:2657. 找到前缀公共数组
笔记·算法·leetcode
嵌入式爱好者hsw3 小时前
Git 部署本地仓库
git
ABAP 成3 小时前
删除+新增原始BOM工序+订单BOM+工序笔记
笔记
XS0301063 小时前
MyBatis基础实战笔记一
笔记·mybatis
Oll Correct3 小时前
实验二十五:从IPv4向IPv6过渡所使用的隧道技术
网络·笔记