【git】git 中批量删除标签TAG的方法

git 中批量删除标签TAG的方法

注意:有些版本的ubuntu 中/bin/sh指向的是dash 而不是bash, 建议用 bash xxx.sh <正则表达式> 的方式执行

#!/bin/bash
# 管理员按一定的条件删除过期的标签

cd /_git/master/xxxx
## 删除当前以及子模块中的标签
deleteTag() {
    echo "delete tag $1"
    git tag -d $1
    git push origin :refs/tags/$1
    git submodule foreach git tag -d $1
    git submodule foreach git push origin :refs/tags/$1
}


for tagName in `git tag`
do
		if `echo $tagName|grep $1` == 0; then
			echo "delete tag:$tagName"
			deleteTag $tagName
		fi
        # 可以用于判断删除条件 if [ ${#tagName} -gt 17 ]  && [ ${tagName:0:17} == "x.00.10.x2x10-20_" ]; then
        #    deleteTag $tagName
       # fi
done

删除标签后,各客户端可以通过以下方法同步

#先删除,保证清除掉本地添加但还没有推送到远程服务器的标签
git tag -l | xargs git tag -d
# 再更新
git fetch --tags
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值