我用Google 搜了 how to delete git tags batch,发现老外的说法大概是,bulk delete,哈哈,英语不行啊。
无非就是shell下的一些做法,感觉实际使用上也够了。
首先就是找到远端要删除的tags列表,关键是用对指令。
git show-ref --tag
这个指令可以列出所有的远端的tag列表,然后就是shell下的一般处理手段了。
git push origin :<tag>
如上指令,会致使远程的tag被删除。用管道一连接,万事大吉。
git show-ref --tag | awk '/(.*)(\s+)(.*)$/ {print ":" $2}' | xargs git push origin
上面的指令就是拼接完整的指令了,不过这个指令,会删除远端所有的tag,慎用,如果希望删除符合条件的,应该修改awk指令的正则表达式。
删除完了远端的tag,本地的tag,删法还不是太一样,不过原理相同。
git tag | grep "v1.1.0.\d$" | xargs git tag -d
举个例子,上述命令删除本地所有 v1.1.0.x 的tag,这个指令,会最多删除10个tag。
时间: 2024-10-26 00:50:18