GIT TAG 批量删除

前言:

  在开发中我们经常使用tag保留历史版本,以防新开发功能bug快速回退到上一个版本。每次功能上线前均使用git flow 管理tag , 随着时间的推移,线上的tag数量可能达到七八十个。实际中其实并不会使用太早的tag,就算代码可以回溯,基本该版本的数据库等都需要配套,除非使用flyway等脚本维护,否则遗留并没有意义。删除的过程中,需要删除本地,再删除远程,对于大量的tag删除确实是一个很苦恼的事情。有没有批量删除某些tag呢。

这里先整理出两个git 删除命令:

//删除本地tag
git tag -d <tagname> 
//删除远程tag
git push origin :refs/tags/<tagName>
  • 先查看目前存在的远程tag列表
     
    git show-ref --tags 
    //或者
    git tag -l

    展示效果如下:

正则匹配需要删除tag列表,这里先查看正则匹配到的tag列表,防止删除错误,这也是批量删除的关键

例如: 我这需要删除1.1.x的tag列表

git show-ref --tag|awk '$2~/1\.1\..'
  •     $2      对第二列进行操作,即 refs/tags/这一列
  •     ~        匹配
  •     '//'       awk 模式匹配的开始结束标志
  •    1\.1\..  第一位是1 , 在正则中 . 匹配任意单个字符,所以这里 \. 类似于转义,纯粹标识字符 (.) 后面 的\. 也是标识字符 .  所以这个正则的含义解读为 :匹配第二列,然后对第二列进行正则匹配 字符(1.1.x),x表示任意单个字符。

执行的结果如下:

   最后借助删除命令即可:

git show-ref --tag |awk '$2~/1\.1\../ {print ":" $2}'| xargs git push origin
  • {print ":" $2} 输出字符串 :+第二列 ,组成字符串 类似于 (:refs/tags/1.1.0)
  • xargs git push origin 将前面的输出结果作为参数执行删除命令

删除本地tag 同理 

git tag -l |awk '/1\.1\../' | xargs git tag -d

结果如下:

本文中使用还使用到的awk ,xargs等linux相关命令,可自行查看学习

附件一个命令:当删除远端tag之后,还有一种思路就是删除本地所有的tag,重新拉去远端tag ,这种方案更简单粗暴,命令如下:

git tag|xargs git tag -d|git pull

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要批量删除远程分支,可以使用以下命令:git show-ref --tag|awk '$2~/master\.*\./' | awk '{print ":" $2}' | xargs git push origin --delete。这个命令的含义是先通过git show-ref --tag命令查询以master结尾的标签,然后使用awk命令提取出分支名称,再使用xargs命令将分支名称作为参数传递给git push origin --delete命令,实现批量删除远程分支。\[1\]这个命令的格式比较特殊,包含了Linux命令grep、Git命令git branch -D,以及陌生的xargs和|符号。具体的操作步骤是先查询符合条件的分支名称,然后将分支名称传递给git push origin --delete命令进行删除操作。\[2\]\[3\] #### 引用[.reference_title] - *1* [Git命令行批量删除远程标签和分支](https://blog.csdn.net/qq_44580165/article/details/119650591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Git-骚操作之批量删除分支](https://blog.csdn.net/qq_32452623/article/details/86317091)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值