使用 TortoiseGit 刪除 GitHub 上的標籤

這二天有需要刪除 GitHub 上的標籤,但試了半天試不出來,原本以為很簡單,如下圖,只要按下滑鼠右鍵,選擇 "刪除 ref/tags/標籤名",就可以刪除該標籤了。

image

 

不過後來才發現,上面只是刪除了本地的標籤,無法刪除遠端的。只要重新拉取資料,被刪除的標籤又出現了。

在 GitHub 上東找西找,網頁上好像也沒有讓人刪除標籤的方法。

在網路上 Google ,一般看到的方法就是要用命令列的方式去處理,這大概是標準的方法了。[tag] 就是要刪除的標籤。

 

git tag -d [tag]

git push origin :refs/tags/[tag]

 

不過因為我是使用 TortoiseGit 在處理,命令列模式好像沒有完整設定,上面的命令一直失敗。

 

C:\git-test>git tag -d V1.0
Deleted tag 'V1.0' (was xxxxxxxx)

C:\git-test>git push origin :refs/tags/V1.0
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

 

最後在 TortoiseGit 的官網找到方法,在實際測試後,終於成功。刪除遠端標籤要用如下方法:

先選擇「瀏覽參照」。

 

 image

 

選擇「remotes -> origin」按右鍵選「刪除遠端標籤」

 

 image

 

選擇要刪除的標籤,再刪除它即可。

 

 image

 

刪除遠端標記,感覺會花上一點時間,等一下就會完成了。

 

 image

 

在一番測試後,發現遠端標籤和本地標籤似乎不會自動同步。

本地加上標籤後,要再推送才會上傳到遠端。

而本地標籤刪除,遠端也不會同步更動。要依前面提到的方法刪除遠端標籤才行。

遠端如果有人加了新標籤,其他人只要拉取,就會看到新標籤。

但如果有人刪除遠端標籤,其他人拉取後,本地標籤不會被刪除。

所以如果你刪了 XX 標籤,沒有通知大家,大家還有留 XX 標籤,下次某甲又加上 XXX 的新標籤,上傳之後,就會把 XX 和 XXX 一起上傳,那個 XX 就白刪了。

或是如果有人刪除遠端標籤 XX,同時又在另一個版本加上同一個 XX 標籤,則其他人除非把原來的 XX 標籤刪除,否則也無法拉取到新的 XX 標籤。

所以標籤的刪除要小心,萬不得已要刪除時,要通知大家,不然可能會造成混亂的情況。

 

以上是我自己試的,如果有錯,還請指正。

重要度:
文章分類:
電腦標籤:

回應

感謝提供刪除遠端分支的方法,補充您使用命令列模式遇到的問題:

C:\git-test>git push origin :refs/tags/V1.0

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

此為存取權限問題,終端機表示沒有存取權去讀取遠端儲存庫而回報錯誤

解法:可於 TortoiseGit 產生公開金鑰後,至 GitHub 帳號中的 settings → SSH and GPG keys 將公開金鑰設定上去,讓遠端儲存庫能認得主人

詳細步驟可搜尋「git 金鑰設定」,各家git介面可能不太一樣,但原理相同

 

 

原來如此,感謝您告知原因,我的確沒有完整設定好終端機的環境。:)

發表新回應