Mac 环境下使用bash 删除远程超过180天以上没有提交的分支

多人维护切时间较长的项目经常会有分支冗余的现象,但是手动删除分支这件事太不适合懒人了。

这个脚本放在跟你需要删除分支项目的根目录下就可以,初次使用可能需要加个最高权限。

不太确定是否适合window环境 可能要改date的使用。

为了避免误操作,需要通过输入来确认。

#!bin/bash
#delete branch
#only for Mac

currentTime=`date -v-180d "+%s"`
sys=`uname`
if [ $sys = "Darwin" ] 
        then
        currentTime=`date -v-180d "+%s"`
        else
        commit_time=1581570945
        fi
for br1 in $all_branches;
do
    br1_simple_name=`echo $br1 | grep '/' | cut -d '/' -f3`
    commit_ts=`git log $br1  -1 --format="%ct"`
    if [[ "" !=  "$br1_simple_name"
            && "HEAD" != "$br1_simple_name" 
            && "master" != "$br1_simple_name" 
            && $commit_ts -lt $currentTime
            ]]; then
    if [ $sys = "Darwin" ] 
        then
        commit_time=`date -r${commit_ts} +"%Y-%m-%d %H:%M:%S"`
        else
        commit_time=`date -d @${commit_ts} +"%Y-%m-%d %H:%M:%S"`
        fi
    # fi
    echo $commit_time
        echo " -D begin delete branch " $br1 " --->> " $br1_simple_name;
        # git checkout $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"

当然最可气的是 当你写完你老板说分支全部保留的那刻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值