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 是基於本地分支的 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
檢視本地某個 tag 的詳細資訊:
git show
檢視本地所有 tag:
git tag 或者 git tag -l
檢視遠端所有 tag:
git ls-remote --tags origin
本地 tag 的刪除:
git tag -d
遠端 tag 的刪除:
git push origin :
git checkout -b
因為 tag 本身指向的就是乙個 commit,所以和根據commit id 檢出分支是乙個道理。
但是需要特別說明的是,如果我們想要修改 tag檢出**分支,那麼雖然分支中的**改變了,但是 tag標記的 commit還是同乙個,標記的**是不會變的,這個要格外的注意。
其它命令git tag -a -m "***..."
可以指定標籤資訊。
命令git tag -a v0.1.0 -m "release 0.1.0 version" 建立附註標籤。
命令git checkout [tagname] 切換標籤。
GIt子模組 Git tag標籤 工作筆記
git submodule init 初始化你的本地配置檔案 git submodule update 更新子模組其他有關子模組的新增或者操作,以後再總結。當修改了子模組的內容時,需要提交到git上。跟主專案一樣的操作 步驟 先進入到子模組的專案檔案下,依次進行操作,git status,git a...
Git tag打標籤的基本用法
給歷史版本打標籤 語法 git tag a 標籤名 標籤id git tag a v1.0 431af9150b8d58b1e3c檢視標籤列表 git tag 給當前版本打標籤 語法 git tag a 標籤名 m 說明 git tag a v2.0 m 2.0穩定版 標籤重新命名 語法 git t...
Git中tag標籤的使用
tag是git版本庫的乙個標記,指向某個commit的指標。tag主要用於發布版本的管理,乙個版本發布之後,我們可以為git打上 v.1.0.1 v.1.0.2 這樣的標籤。tag感覺跟branch有點相似,但是本質上和分工上是不同的 tag 對應某次commit,是乙個點,是不可移動的。branc...