🚀分享一个批量删除 git 分支 shell 脚本

1,545 阅读1分钟

前言

头发不多,分支却不少,批量删除分支,刻不容缓!

shell 不熟悉,有什么不好的地方请大佬指正!

代码

mkdir shell

cd shell

touch bd.bash
#!/bin/bash
# $1 为命令中第一个参数
if [ $1 ]
then
  read -p "确定删除 $1 开头的分支吗?(y/n) " -n 1 -r
  echo
  if [[ $REPLY =~ ^(yes|y|) ]]
  then
    git branch | grep $1 | xargs git branch -D
  fi
else
  read -p "确定删除 master dev qa uat 外的分支吗?(y/n) " -n 1 -r
  echo
  if [[ $REPLY =~ ^(yes|y|) ]]
  then
    # 要排除哪些分支,根据需求自行修改
    git branch | grep -v "master" | grep -v "dev" | grep -v "uat" | grep -v "qa" | xargs git branch -D
  fi
fi

环境变量配置

写好之后,把 shell 文件夹添加到 Path 环境变量中,就可以在任何地方使用 db.bash 了 (如果不加到 Path 环境变量中只能根据路径执行 如 ./db.bash

使用

# 删除 feat 开头的分支
db.bash feat

# 删除 fix 开头的分支
db.bash fix

# ……

# 删除 master dev qa uat 外的分支
db.bash