[GIT]清除歷史不用的 Tag

Tag 雖然不佔用甚麼空間 , 但如果過多又覺得有點礙眼 , 就花點時間把已經不用的 tag 給清除

去年因為產品被要求的功能不少,同時會有新增的功能和異常的修正,為了能比較清楚每個發版的軌跡,我們會在每次把程式放到 product 環境的時候,就會標示一個日期的 Tag,讓後續查看客戶問題的時候可以知道當時版本的狀況。

只是當 tag 過多的時候會有點麻煩,於是就嘗試用的指令把 2018 年所建立的 Tag 給刪除,因此這個時候就利用 SourceTree 右上角有個 Terminal 的功能,開啟 bash 的環境,透過以下的指令來將 2018 年的 Tag 給刪除

git tag -l | grep 2018 | xargs git push --delete origin

上述這個指令執行主要是先透過 git tag 的功能列出所有的 tag ,透過 grep 進行過濾後,再利用 git push --delete 的方式,將 remote 的 repository 裡面的 tag 給刪除。而接下來就要請所有使用這個 repository 的人員,都去利用以下的指令去重新更新自己 Local 的 Tag 資訊

git tag -l | xargs git tag -d && git fetch -t

利用上述這個指令,我們是先把所有的 Tag 給列出來後,然後把 Local 的所有 tag 都全部給刪除,接著再用 git fetch 的方式,把所有的 tag 重新下載回來,達到更新的目的。

為什麼在上述的說明中,要強調「所有使用」的人員呢 ? 因為如果有一個人還保有舊的 tag ,那會在一些操作的時候,又把之前刪除的 tag 給重新上傳回去,一開始沒有注意到這樣,害我都以為自己是不是恍神沒有刪除,怎麼過了一陣子 tag 又跑回來了,因此如果有需要刪除舊的 tag 的時候,就要特別去注意一下了。