正文開始之前,我想我們需要弄明白幾個問題:
1.tag 是什么?
2.使用tag 的好處?
3.tag 和 branch 的區(qū)別以及使用場景?
tag 是什么?
tag , 翻譯過來是標簽的意思,顧名思義,標簽是為了標記某種事物。
tag 是 Git 版本庫的一個快照,指向某個 commit 的指針。
使用tag 的好處?
tag 的存在,是因為我們需要這種標記的功能。目前的項目開發(fā)中,當發(fā)布版本時 tag 就派上用場了。例如 v1.0.1,v1.0.2…
另外,git 提供了 tag 的增刪改查一系列操作,在 tag 的使用上,可謂非常之方便。
tag 和 branch 的區(qū)別以及使用場景?
想到這里,你可能覺得 tag 和 branch 有點相似。沒錯,的確是有點像,但是它們的職責(zé)分工和本質(zhì)都是不同的。
tag 對應(yīng)某次 commit, 是一個點,是不可移動的。
branch 對應(yīng)一系列 commit,是很多點連成的一根線,有一個HEAD 指針,是可以依靠 HEAD 指針移動的。
所以,兩者的區(qū)別決定了使用方式,改動代碼用 branch ,不改動只查看用 tag。
tag 和 branch 的相互配合使用,有時候起到非常方便的效果,例如 已經(jīng)發(fā)布了 v1.0 v2.0 v3.0 三個版本,這個時候,我突然想不改現(xiàn)有代碼的前提下,在 v2.0 的基礎(chǔ)上加個新功能,作為 v4.0 發(fā)布。就可以 檢出 v2.0 的代碼作為一個 branch ,然后作為開發(fā)分支。
<font color = "#008000>tag 的簡單使用
以下命令都是我使用 tag 過程中一般會使用到的,可以說都是常用命令。
###1.創(chuàng)建標簽
需要說明的是,創(chuàng)建 tag 是基于本地分支的 commit,而且與分支的推送是兩回事,就是說分支已經(jīng)推送到遠程了,但是你的 tag 并沒有,如果把 tag 推送到遠程分支上,需要另外執(zhí)行 tag 的推送命令。
git tag <tagName> //創(chuàng)建本地tag
git push origin <tagName> //推送到遠程倉庫
1
2
若存在很多未推送的本地標簽,你想一次全部推送的話,可以使用一下的命令:
git push origin --tags?
1
2
以上是基于本地當前分支的最后的一個 commit 創(chuàng)建的 tag ,但是如果不想以最后一個,只想以某一個特定的提交為 tag ,也是可以的,只要你知道 commit 的 id。
git log --pretty=oneline //查看當前分支的提交歷史,里面包含 commit id
git tag -a <tagName> <commitId>
1
2
###2.查看標簽
查看本地某個 tag 的詳細信息:
git show <tagName>
1
查看本地所有 tag :
//下面兩個命令都可以
git tag
git tag -l
1
2
3
查看遠程所有 tag:
git ls-remote --tags origin
1
2
###3.刪除標簽
本地 tag 的刪除:
git tag -d <tagName>
1
遠程 tag 的刪除:
git push origin :<tagName>
1
###4.重命名標簽
這個本質(zhì)上是刪除掉舊名字 tag ,然后再新建新名字 tag ,然后實現(xiàn)重命名的作用。
如果 tag 只存在本地,那么只需要刪除本地的舊名字 tag ,然后新建新名字 tag:
git tag -d <oldTagName>
git tag <newTagName>
git push origin <newTagName> //推送到遠程倉庫
1
2
3
若已經(jīng)推送到遠程了,那么不僅要刪除本地的,還要刪除遠程的,再重新創(chuàng)建和推送:
git tag -d <oldTagName>
git push origin :<oldTagName>
git tag <newTagName>
git push origin <newTagName> //推送到遠程倉庫
1
2
3
4
5
###5.檢出標簽
命令如下:
git checkout -b <branchName> <tagName>
1
因為 tag 本身指向的就是一個 commit,所以和根據(jù) commit id 檢出分支是一個道理。
但是需要特別說明的是,如果我們想要修改 tag 檢出代碼分支,那么雖然分支中的代碼改變了,但是 tag 標記的 commit 還是同一個,標記的代碼是不會變的,這個要格外的注意。
---------------------
作者:DRPrincess
來源:CSDN
原文:https://blog.csdn.net/qq_32452623/article/details/73949509
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!