HOWTO · Git

在 Git 中移動現有標籤

你可以將現有標籤移動到 Git 中的最近提交。

本頁內容

在本文中,我們將討論在 Git 中移動標籤。我們不鼓勵移動標籤,特別是如果我們作為一個團隊工作,因為它會打亂我們專案的時間表。

儘管如此,Git 允許我們在需要時移動標籤。讓我們看一個實際的例子。

在 Git 中移動現有標籤

為了模擬我們想要將標籤移動到最近提交的場景,我們將建立一個標籤 V1,進行一些提交,並嘗試將標籤移動到最近的提交。讓我們開始吧。

這是我們本地倉庫的提交歷史。

$ git log --oneline

提交歷史

我們將使用 git tag 命令將 V1 標籤放在 Sixth Update 提交上。

$ git tag V1

git tag V1

從 git log 輸出中可以看出,該標籤現在位於 Sixth Update。讓我們編輯 repo 中的檔案並提交更改。

這是我們新倉庫的提交歷史。

$ git log --oneline

git log –oneline

如果我們嘗試執行 git tag 命令,我們會收到此錯誤。

$ git tag V1
fatal: tag 'V1' already exists

我們總是可以建立另一個標籤,但假設我們已經建立了 V1 標籤並意識到我們遺漏了一些修改。提交遺漏的更改後,我們如何移動標籤?

像 Git 中的其他幾個命令一樣,我們可以強行通過。我們將不得不使用帶有 --force 選項的 git tag 命令,如下所示。

$ git tag --force V1

讓我們檢查一下我們的提交歷史。

$ git log --oneline

git 標籤–force V1

如果我們已經推送,我們可以繼續釋出到遠端倉庫。但是,我們需要新增 --force 選項來強制遠端更新。

$ git push origin V1 --force

這就是在 Git 中移動標籤所需要做的一切。但在我們簽署之前,讓我們看看在另一個開發人員更新遠端倉庫中的標籤後我們如何拉取。

第一步是刪除我們本地倉庫中的標籤。我們執行以下命令。

$ git tag -d V1

現在我們可以執行 git pull 命令來更新我們的本地倉庫。

$ git pull

這應該會更新本地倉庫中的標籤。

我們可以通過在 git tag 命令中引入 --force 選項來移動 Git 中的標籤。處理聯合專案時,在建立和移動標籤時要小心。

你可能會弄亂專案的時間線。