今天遇到一個問題,之前使用jenkins打包,設定錯了,導致gitlab專案有大量無用的tag,有幾百個,看着很煩,但是手動一個一個刪是不可能的,所以就想有沒有辦法執行一個批次操作,刪除所有的這種無用的tag。
首先上一個範例圖:
二。百度發現一個一篇文章,很不錯,但是缺少說明,所以就參照着嘗試,寫出我的理解。
參考文件: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}'
結果如下:
第一個命令是列出來所有的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以及一些其他的操作,都可以使用到了。