2014-06-06 71 views
0

我是新來源代碼管理和Git。我正在使用一本書,發現很難取得很大進展。請幫我理解Git。git tag命令如何知道要標記哪個提交?

My Book - Git:每個人的版本控制。

主題 - Git標記。

步驟 -

首先,CD到本地系統(由書提供) 「卡布奇諾」 回購。

當您想用某些元數據在歷史記錄中標記某個特定點並在此後使用相同標記引用它時,標記會派上用場。我們在Git中有兩種類型的標籤 - 輕量級和註釋。

現在,讓我們在我們的卡布奇諾庫通過執行創建一個輕量級的標籤下面: git tag edge_v1.1

剛纔發生了什麼? 我們已經成功創建並將輕量/未註釋的標籤附加到特定的提交。我們還學會了列出存儲庫中可用的所有標記,並在需要時查看與任何給定標記關聯的粒度級別更改。

我不明白哪個特定的提交被標記/標記此命令。我期望一個標記命令像這個僞代碼git tag COMMID_ID=XXX edge_v1.1。請解釋由於tag命令真正發生了什麼,以及標記如何真正起作用。

書中接着說一些其他的東西 -

我們瞭解引用與標籤名稱,而不是提交SHA1 ID提交。讓我們明白這實際上意味着什麼。

我們已經學習了git checkout作爲函數返回歷史。如您所知,此過程需要提交的SHA1 ID,您希望訪問該ID。現在我們來看看在處理標籤時如何完成 。在CLI窗口中鍵入以下命令:

git checkout 2e361b44 
git checkout edge_v1.1 

我們檢查出來提交在使用通常的結帳(GIT結賬SHA1 ID)方法提前製作,但回來到最​​新與用法提交與提交相關聯的標記名稱(edge_v1.1)。

這最後一段是什麼意思?

回答

3

git tag edge_v1.1git tag edge_v1.1 HEAD相同 - HEAD表示「當前檢出的提交」(通常是當前分支上最近的提交)。

如果您想標記其他提交,只需將HEAD替換爲提交ID即可。

至於標籤的工作方式,您可以在.git/refs/tags目錄中找到它們。它們只是指向提交的文件。


git checkout 2e361b44

此命令會得到歷史項目的特定版本,並把它變成你的工作目錄。例如,如果您想測試您的程序過去的工作方式,這很有用。

git checkout edge_v1.1

這是相同的命令,只是要求的Git給你一個不同的版本。

這本書是說,你可以切換到第一個命令的舊版本,然後切換回當前版本與第二個。

+1

和HEAD是您的工作副本當前基於的提交(通常是最新提交) – Thilo

+0

@Thilo - 謝謝。這現在很有意義。你能否也請告訴我最後一段的含義是什麼?謝謝。 –

+1

在你的倉庫裏面,有一個保存所有Git元數據的'.git'文件夾。標籤只是位於此文件夾內的文件。 –

相關問題