使用git進行批次操作

2020-08-13 13:53:48

今天遇到一個問題,之前使用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以及一些其他的操作,都可以使用到了。