Git中tag的用法及作用簡介


一、什么是tag

tag是git版本庫的一個標記,指向某個commit的指針。

tag主要用於發布版本的管理,一個版本發布之后,我們可以為git打上 v.1.0.1 v.1.0.2 …這樣的標簽。

tag感覺跟branch有點相似,但是本質上和分工上是不同的:

tag 對應某次commit, 是一個點,是不可移動的。
branch 對應一系列commit,是很多點連成的一根線,有一個HEAD 指針,是可以依靠 HEAD 指針移動的。
所以,兩者的區別決定了使用方式,改動代碼用 branch ,不改動只查看用 tag。

tag 和 branch 的相互配合使用,有時候起到非常方便的效果,例如:已經發布了 v1.0 v2.0 v3.0 三個版本,這個時候,我突然想不改現有代碼的前提下,在 v2.0 的基礎上加個新功能,作為 v4.0 發布。就可以檢出 v2.0 的代碼作為一個 branch ,然后作為開發分支。

二、tag的簡單使用

1.創建tag:

創建 tag 是基於本地分支的 commit,而且與分支的推送是兩回事,就是說分支已經推送到遠程了,但是你的 tag 並沒有,如果把 tag 推送到遠程分支上,需要另外執行 tag 的推送命令。

git tag //創建本地tag

git push origin //推送到遠程倉庫

若存在很多未推送的本地標簽,你想一次全部推送的話:

git push origin --tags

以上是基於本地當前分支的最后的一個commit 創建的 tag ,但是如果不想以最后一個,只想以某一個特定的提交為tag ,也是可以的,只要你知道commit 的id。

git log --pretty=oneline //查看當前分支的提交歷史 里面包含 commit id

git tag -a

2.查看標簽

查看本地某個 tag 的詳細信息:

git show

查看本地所有 tag:

git tag 或者 git tag -l

查看遠程所有 tag:

git ls-remote --tags origin

3.刪除標簽

本地 tag 的刪除:

git tag -d

遠程 tag 的刪除:

git push origin :

4.檢出標簽

git checkout -b

因為 tag 本身指向的就是一個 commit,所以和根據commit id 檢出分支是一個道理。

但是需要特別說明的是,如果我們想要修改 tag檢出代碼分支,那么雖然分支中的代碼改變了,但是 tag標記的 commit還是同一個,標記的代碼是不會變的,這個要格外的注意。

其它

命令git tag -a -m “XXX…” 可以指定標簽信息。

命令git tag -a v0.1.0 -m “release 0.1.0 version” 創建附注標簽。

命令git checkout [tagname] 切換標簽。


免責聲明!

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



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