網站首頁 編程語言 正文
一、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
git tag //默認顯示
git tag -l
git tag -n //查看所有tag和說明
git tag -l v1.* //查看匹配到的tag
git ls-remote --tags origin //查看遠程所有tag
2、查看tag信息
git show v1.0.1 //查看v1.0.1的內容
3、創建tag
git tag v2.0
git push origin //遠程tag的創建
4、創建帶注釋tag
git tag -a v2.1 -m '第二版本' ////-m 后跟的是注釋信息, 當使用git show v2.1的時候, 會顯示這個注釋信息
git push origin //遠程tag的創建
5、推送tag
git push origin [tagname] //推送到遠程倉庫
git push origin --tags //推送所有tag到遠程倉庫
6、特定commit_id創建tag
git log --pretty=oneline //查看當前分支的提交歷史 里面包含 commit_id
git tag -a
7、刪除tag
git tag -d //方式一
git tag -d [tagname] //方式二
git push origin :refs/tags/v1.0.2 //方式一:遠程tag的刪除
git push origin --delete <tagname> //方式二:遠程tag的刪除
8、檢出tag
git checkout -b
//因為 tag 本身指向的就是一個 commit,所以和根據commit id 檢出分支是一個道理。
//但是需要特別說明的是,如果我們想要修改 tag檢出代碼分支,那么雖然分支中的代碼改變了,但是 tag標記的 commit還是同一個,標記的代碼是不會變的,這個要格外的注意
git checkout -b branch_name tag_name //新建分支檢出
//注意不要在檢出標簽后做修改和提交,會出現不必要的麻煩。正確的做法應該是創建一個新的分支,在新的分支上做修改和提交。
9、切換tag
git checkout [tagname] //切換到指定tag
10、為之前提交的添加tag
git log --pretty=oneline --abbrev-commit //第一步:找到提記錄
git tag -a v3.1 [指定標簽名] [commitID] //第二步:為記錄創建tag
//git tag -a "v1.0.2" 9fbc3d0
11、重命名tag
//1.強制替換,再刪除原有
git tag -f <new-tag> <old-tag>
git tag -d <old-tag>
//2.刪除原有tag,重新添加
git tag -d <old-tag>
git tag -a <new-tag> -m"information"
原文鏈接:https://www.cnblogs.com/wml-it/p/15588730.html
相關推薦
- 2023-02-07 Pytorch中torch.cat()函數的使用及說明_python
- 2022-04-18 [webpack-cli] { Error: Cannot find module ‘acorn‘
- 2022-02-18 IE11打開后顯示空白頁,報錯:1002||不支持XXX屬性或方法
- 2022-12-08 React狀態更新的優先級機制源碼解析_React
- 2023-07-27 call、apply、bind三者的用法和區別
- 2022-11-08 Numpy安裝、升級與卸載的詳細圖文教程_python
- 2022-12-28 QT?Creator+OpenCV實現圖像灰度化的示例代碼_C 語言
- 2023-07-07 @RestController 和 @Controller的區別?
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支