歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Git批量刪除遠程的tag

Git批量刪除遠程的tag

日期:2017/2/28 13:58:47   编辑:Linux教程

在我最新任職的團隊裡,我們采用Git正式作為我們團隊開發管理的工具。我們使用Git來做版本控制,研發管理,和線上部署。我們將Git的版本庫直接作為代碼目錄,來存放線上代碼,發布的方法,就簡化成了,將線上環境的代碼目錄,checkout 到指定的 tag,簡單,快捷。

這個方法執行了一段時間後,發現一個新的煩惱,就是中央版本庫的tag數量會變得非常多,多的時候,達到300多個,這其實也沒什麼了不起,但是我們自己采用gitlab來搭建自己的中央版本庫,這個gitlab,還是很多bug的,當tag多了以後,整個網站都呈現出不是特別正常的樣子,所以,就需要保持較少的tag列表,讓網站保持比較高的性能。然後我就有了一個動機,就是刪除遠端的tag列表。

我用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。

GitHub 教程系列文章

GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm

Ubuntu下Git服務器的搭建與使用指南 http://www.linuxidc.com/Linux/2015-07/120617.htm

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved