Shell脚本通过git仓库地址删除多余tag只保留3个

#!/bin/bash
##################################################################
# 使用前确保服务器装有git,最好预设号git账户和密码,请谨慎操作。                                       #
# Author:Jack.zhou                                                                                                           #
# email : 1277109646@qq.com                                                                                          #
##################################################################


temFilePath=/home/deleteTagTemp


#剩多少个
number=3


#创建临时目录
cd /home
mkdir deleteTagTemp


echo "请输入github远程仓库路径(例如:https://github.com/xxx/central-ls-service.git)"
echo -n "输入:"
read confirm
cd $temFilePath


echo -e "\033[44;37;5m 下载仓库到服务器  \033[0m YAMIBUY"
git clone $confirm


path=`ls`


echo "进入项目目录" $path
cd $path


echo -e "\033[44;37;5m 切换到主分支 master! \033[0m YAMIBUY"
git checkout master


line=`git tag -l | wc -l`
echo "总共tag数:" $line
if [ "$line" -gt $number ]
then
while [ "$line" -gt $number ]
do
#列转行然后一次awk切割循环删除第一个
tag=`git tag -l | awk '{for(i=1;i<=NF;i++)a[NR,i]=$i}END{for(j=1;j<=NF;j++)for(k=1;k<=NR;k++)printf k==NR?a[k,j] RS:a[k,j] FS}'`


echo "全部tag列转行后的结果:" $tag


deleteTag=`echo $tag | awk -F ' ' '{print $1}'`


echo "本次需要删除的tag为:" $deleteTag

echo -e "\033[44;37;5m 执行删除命令! \033[0m YAMIBUY"

echo "删除本地Tag!"
git tag -d $deleteTag
echo "删除远程Tag!"
git push origin :refs/tags/$deleteTag

line=`git tag -l | wc -l`
echo "剩余tag数:" $line
done
echo -e "\033[44;37;5m 删除tag至只剩${number}个完毕! \033[0m YAMIBUY"
else
echo -e "\033[44;37;5m tag总数小于${number}个不用删除! \033[0m YAMIBUY"
fi


#删除仓库
rm $temFilePath/* -rf


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值