# 13. 給版本打標簽
## 目的
> 學習如何使用名稱給提交打標簽以便將來參考。
讓我們叫 hello 程序的當前版本為 version 1 (v1)。
### 標記 version 1
```
$ git tag v1
```
現在你可以引用程序的當前版本為 v1。
### 標記先前的版本
讓我們標記當前版本之前的版本為 v1-beta。首先我們需要檢出 先前的版本。代替查詢哈希,我們將使用 `^` 來表示“v1 的父 提交”。
如果使用 `v1^` 表示法遇到問題,那么你也可以試試 `v1~1`, 這將引用相同的版本。該表示法意為“v1 的第一個祖先提交”。
```
$ git checkout v1^
$ cat hello.rb
```
```
$ 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 582495a... Added a default value
$ cat hello.rb
name = ARGV.first || "World"
puts "Hello, #{name}!"
```
看,這是我們添加注釋之前的默認值版本。讓我們使它成為 v1-beta。
```
$ git tag v1-beta
```
### 按標簽名檢出
現在試試在兩個標記版本之間切換。
```
$ git checkout v1
$ git checkout v1-beta
```
```
$ git checkout v1
Previous HEAD position was 582495a... Added a default value
HEAD is now at 1f7ec5e... Added a comment
$ git checkout v1-beta
Previous HEAD position was 1f7ec5e... Added a comment
HEAD is now at 582495a... Added a default value
```
### 使用 tag 命令查看標簽
你可以使用 `git tag` 命令來看看可用的標簽有什么。
```
$ git tag
```
```
$ git tag
v1
v1-beta
```
### 查看日志中的標簽
你也可以檢查日志中的標簽。
```
$ git hist master --all
```
```
$ git hist master --all
* 1f7ec5e 2013-04-13 | Added a comment (v1, master) [Jim Weirich]
* 582495a 2013-04-13 | Added a default value (HEAD, v1-beta) [Jim Weirich]
* 323e28d 2013-04-13 | Using ARGV [Jim Weirich]
* 9416416 2013-04-13 | First Commit [Jim Weirich]
```
你可以在日志輸出中看到與分支名稱(master)一起列出了兩 個標簽(v1 和 v1-beta)。而且 HEAD 顯示你當前檢出的提交 (此刻是 v1-beta)。
- 關于
- 1. 設置
- 2. 再談設置
- 3. 創建項目
- 4. 檢查狀態
- 5. 做更改
- 6. 暫存更改
- 7. 暫存與提交
- 8. 提交更改
- 9. 更改而非文件
- 10. 歷史
- 11. 別名
- 12. 獲得舊版本
- 13. 給版本打標簽
- 14. 撤銷本地更改
- 15. 撤銷暫存的更改
- 16. 撤銷提交的更改
- 17. 從分支移除提交
- 18. 移除 oops 標簽
- 19. 修正提交
- 20. 移動文件
- 21. 再談結構
- 22. Git 內幕:.git 目錄
- 23. Git 內幕:直接處理 Git 對象
- 24. 創建分支
- 25. 導航分支
- 26. 在 master 中更改
- 27. 查看分叉的分支
- 28. 合并
- 29. 創建沖突
- 30. 解決沖突
- 31. 變基 VS 合并
- 32. 重置 greet 分支
- 33. 重置 master 分支
- 34. 變基
- 35. 合并回 master
- 36. 多個倉庫
- 37. 克隆倉庫
- 38. 回顧克隆的倉庫
- 39. 何為 Origin?
- 40. 遠程分支
- 41. 更改原始倉庫
- 42. 取得更改
- 43. 合并拉下的更改
- 44. 拉下更改
- 45. 添加跟蹤的分支
- 46. 裸倉庫
- 47. 添加遠程倉庫
- 48. 推送更改
- 49. 拉下共享的更改
- 50. 托管你的 Git 倉庫
- 51. 共享倉庫
- 52. 高級/將來的主題