Git-命令行-使用 Tag 標記你的代碼

正文開始之前,我想我們需要弄明白幾個問題:

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)載請附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容