git 入門教程之里程碑式標簽


"春風得意馬蹄疾,一日看盡長安花",對於項目也是如此,最值得期待的恐怕就要數新版本發布的時刻了吧?每當發布新版本時要么是版本號命名(比如v0.0.1)或者代號命名(比如Chelsea),不管怎么說這種里程碑階段總是要留下些許紀念意義.

既然想要紀念這種特殊的歷史時刻,自然是希望它能夠固定下來,不要發生隨意移動,產生不可預期后果.

這種需求其實和我們前面說的分支概念很相似,均是源於特殊的版本號,逐漸收集起一系列版本,最終形成一條相對獨立的歷史線,但分支並不是實現里程碑概念的最佳選擇,為什么?

分支適合多人協作開發時互不影響,適當時機主動合並他人工作成果這種模式,而這種模式是由不同的功能模塊進行驅動的,正所謂"天下大勢分久必合,合久必分",當功能模塊開發完畢后自然也就沒有分支存在的必要性,更何況分支在收集版本的過程中會一直移動,並沒有特殊的固定版本,顯然分支不是最佳選擇!

但是,分支確定一定程度上和里程碑概念很相似,源於特定版本,自主命名,收集版本等,那么何必重頭再來,為何不復用已有概念呢?

實際上,git 中的標簽(tag) 就是實現里程碑概念的方式,它可以永久性指向特定的提交並將命名,然后就可以將其理解成分支一樣引用了!

但標簽(tag)不是分支(branch),標簽是一個點的話,分支就是若干點連接而成的線,標簽是靜態的,分支是動態的,標簽是只讀的,分只是可讀可寫的.

git-tag-create.png

創建標簽 git tag <tag>

# 方式一: 默認 `HEAD` 指向的版本
git tag v0.0.1

# 方式二: 指定 `commit_id` 表示的版本
git tag v0.0.2 f971647

# 方式三: 指定 `commit_id` 表示的版本,同時創建標簽說明信息
git tag -a v0.0.3 -m "v0.0.3" f971647

git-tag.gif

列出標簽 git tag

git tag 

顯示標簽 git show <tag>

git show v0.0.1

刪除標簽 git tag -d <tag>

git tag -d v0.0.1

推送標簽 git push origin <tag>

git push origin v0.0.1

推送全部標簽 git push origin --tags

git push origin --tags

刪除遠程標簽 git tag -d <tag> git push origin :refs/tags/<tag>

# 刪除本地標簽 
git tag -d v0.0.1

# 推送刪除標簽(刪除也是推送)
git push origin :refs/tags/v0.0.1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM