来一个批量删除 git 远程分支的 shell 脚本

  由于一次特殊原因,要求删除n个项目的除master及特定分支外的所有分支,而在 gitblit 上也不好操作,只好借助 git 客户端操作了!

  然而客户端只能一个分支一个分支地删除,着实烦人!

  于是写了shell,可能你也有用得上的时候呢~!

复制代码
#!/bin/bash

# 批量删除远程分支 shell script

reponsitory_name="$1"
cd $reponsitory_name;
echo " -R welcome the 【$reponsitory_name】 reponsitory, you will delete the branches, WARNNING !!! ";
echo " -R !!! WARNNING !!! ";
all_branches=`git branch -a`;
#echo $all_branches;
for br1 in $all_branches;
do
    br1_simple_name=`echo $br1 | grep '/' | cut -d '/' -f3`
    if [[ "" !=  "$br1_simple_name"
            && "HEAD" != "$br1_simple_name" 
            && "master" != "$br1_simple_name" 
            ]]; then
        echo " -D begin delete branch " $br1 " --->> " $br1_simple_name;
        read -p " -W Are you sure delete the branch ** $br1 (y/n)[n]: " answer
        if [[ "$answer" = "Y" || "${answer}" = "y"  ]]; then
            echo " Yes! deleting branch $br1 -> $br1_simple_name";
            git push origin --delete $br1_simple_name;
        else
            echo " Skipped!!!";
        fi;
    fi;
    
done;
echo "over";
复制代码

 

  这样,每次都会提示你要删除的分支!

  你就负责点确认就行了!

posted @   阿牛20  阅读(1684)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示