使用git进行批量操作

今天遇到一个问题,之前使用jenkins打包,配置错了,导致gitlab项目有大量无用的tag,有几百个,看着很烦,但是手动一个一个删是不可能的,所以就想有没有办法执行一个批量操作,删除所有的这种无用的tag。

首先上一个示例图:

使用git进行批量操作

二。百度发现一个一篇文章,很不错,但是缺少说明,所以就参照着尝试,写出我的理解。

参考文档:https://www.cnblogs.com/rocky-fang/p/8118465.html

一共设计到三个命令的组合:

第一个:git show-ref --tag

awk '/\$\{VERSION_CODE}.*?$/ {print “:” $2}'

xargs git push origin //这里有一个空格

第一个命令的结果上面已经列出了,

第二个:git show-ref --tag | awk '/\$\{VERSION_CODE}.*?$/ {print ":" $2}'

结果如下:

使用git进行批量操作

第一个命令是列出来所有的tag,第二个就是匹配出所有适配的并且进行一些加工(这里加上了:)。其中$2代表第二行的值,$1则自然代表第一行的值。

第三个:git show-ref --tag | awk '/\$\{VERSION_CODE}.*?$/ {print ":" $2}' | xargs git push origin //最后有空格。

git push oirgin :refs/tags/${VERSION_CODE}-${MODULE_ENV}-20200715225823-TAG是删除tag的命令,xargs应该是把前面的值拼接到最后的作用。

 

感觉这个很不错,以后批量删分支,批量删tag以及一些其他的操作,都可以使用到了。