背景:在项目开发过程中,在测试环境,每次修改都会推送一个tag,因此导致tag集合中有最终生产tag和测试tag,实际上测试tag使用过以后,不再有作用了,因此需要近期清除,为了减少手工去gitlab一个个删除,使用命令行过滤批量删除;
先删除远程,再删除本地;如果相反,那么在删除远程时,没有参考名称;
远程
查看本地
查看本地tag,名字包含v2的
git show-ref --tag | awk '/v2/ {print ":"$2}'
删除本地
删除远程包含 v2 的tag;
git show-ref --tag | awk '/v2/ {print ":"$2}' | xargs git push origin
本地
查看本地
查看本地tag,名字包含v1的
$git tag | grep v1
删除本地tag
git tag | grep v1 | xargs git tag -d