2012-07-01 22 views
6

我遇到了很多通過標記標籤發誓的開發者。就我個人而言,我從來沒有見過它的用途。爲什麼有人要在Git中進行標記?

我知道你可以將版本信息放在標籤中,但爲什麼不把這些信息放在提交消息中呢?

我只是混淆了標籤添加提交消息無法添加的值。

+5

標籤本質上是一個設計不會改變的分支。您使用它們的原因與您使用分支的相同原因(歷史記錄中的特定點的名稱而不僅僅是哈希),但是當您期望該名稱更改位置時使用分支,而當您不使用分支時使用分支。 – Amber

+0

@琥珀真的很好的解釋! – Jonathan

回答

8

標籤允許您引用存儲庫中的特定提交。使用版本標籤,您可以輕鬆地在您的項目中獲得與例如版本1.5。這比記住特定提交的哈希,或者滾動/通過日誌信息來查找哪個提交表示版本1.5更可取。

這可能是許多原因是有用的,但考慮到只有一個:你有,使用的版本2.0客戶端A1.5版本和客戶端B運行不同版本的軟件的兩個客戶端。客戶端A報告錯誤,您不能只升級他們的安裝,而是需要解決版本1.5代碼中的錯誤。標記版本1.5允許您輕鬆地返回到他們正在運行的代碼並處理修補程序。

5

提交消息通常用於提供更多關於爲什麼提交的信息,而不僅僅是'它是版本X'。

使用該標籤,您可以返回標籤版本,而無需滾動查看日誌以找到正確的提交編號;你直接檢出標籤版本。而更有限的標籤名稱空間在這裏是一個好處,而不是一個障礙。

8

在Git中,標記可以讓您爲特定的提交指定一個符號名稱(易記的東西)。這允許你參考提交的名稱,而不是原始的提交編號

當我反覆回顧某個特定版本時,例如剛完成大量工作之前的某個點時,我有時會添加一個本地標記。我還使用帶註釋的標籤來標記特定的發佈版本號(註釋標籤可以輕鬆推送,並且可以包含除名稱之外的其他描述)。

2

注意,您可以sign a tag,當你想(即發佈到另一個回購協議),這是很重要的

請參閱「Why do some open source projects do not accept pull requests, but emailing patch files only」。

那麼你爲什麼要在Git中標記(分佈式版本控制系統)?

您可以標記爲引用具有符號名稱的樹(如其他答案中所述)。

但是你也可以簽署你的標籤,以通過保證內容的完整性來促成另一個回購。
收件人只需要做的是check that tag signature以確認它來自可靠的來源。

相關問題