章節 13 建立版本標籤

學習目標

讓我們把目前 hello 程式定義為版本 1(v1)。

設定標籤版本 1 (v1) 01

執行:

git tag v1

現在您可以用v1這個名稱來代替這個版本的 hash 編碼。

為之前的版本設定標籤02

讓我們來給上一個版本標上 v1-beta 的標簽。首先我們需要簽出上一版。除了可以使用 git log 找出 hash 編碼外,我還可以使用 ^ 來表示 v1 的父版本(上一版)。

如果 v1^ 無法正常運作,您可以改試試看 v1~1這一樣是指上一個版本,不過可能是因為作業系統的因素導致您無法使用 v1^ 。

執行:

git checkout v1^
cat hello.rb

Output:

$ git checkout v1^
Note: checking out 'v1^'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 1b754e9... Added a default value
$ cat hello.rb
name = ARGV.first || "World"

puts "Hello, #{name}!"

看吧,這個版本的內容是有預設值設定的版本就是我們加入註解 之前 的版本。現在幫這個版本設定 v1-beta 的標籤。

執行:

git tag v1-beta

確認標簽名稱 03

現在試著在這兩個版本之間切換

執行:

git checkout v1
git checkout v1-beta

輸出:

$ git checkout v1
Previous HEAD position was 1b754e9... Added a default value
HEAD is now at 4054321... Added a comment
$ git checkout v1-beta
Previous HEAD position was 4054321... Added a comment
HEAD is now at 1b754e9... Added a default value

檢視所有 tag 指令 04

您可以使用 git tag 指令去檢視目前檔案庫中的標籤

執行:

git tag

輸出:

$ git tag
v1
v1-beta

在歷史紀錄(Logs) 中檢視標籤 05

現在您可以檢視歷史紀錄(Logs)並觀察出每個版本的標簽資訊。

執行:

git hist master --all

輸出:

$ git hist master --all
* 4054321 2012-03-06 | Added a comment (v1, master) [Jim Weirich]
* 1b754e9 2012-03-06 | Added a default value (HEAD, v1-beta) [Jim Weirich]
* 3053491 2012-03-06 | Using ARGV [Jim Weirich]
* 3cbf83b 2012-03-06 | First Commit [Jim Weirich]

您可以在輸出中看到標簽的名稱(v1v1-beta),還有分支名稱(master)。另外 HEAD 表示目前簽出的版本。(現在您應該看到的是 v1-beta 這個版本)。

目錄