Git【标签操作】

目录

一、理解标签

二、创建标签

[2.1 给最新的提交打标签](#2.1 给最新的提交打标签)

[2.2 给指定的提交打标签](#2.2 给指定的提交打标签)

[2.3 创建带说明的标签(推荐)](#2.3 创建带说明的标签(推荐))

[2.4 查看所有标签](#2.4 查看所有标签)

[2.5 查看某个标签的详细信息](#2.5 查看某个标签的详细信息)

三、操作标签

[3.1 删除本地标签](#3.1 删除本地标签)

[3.2 推送标签到远程仓库](#3.2 推送标签到远程仓库)

[3.3 删除远程标签](#3.3 删除远程标签)

git log查看过那一长串的commit id。每次要回退到某个重要版本时,都需要翻出那串像乱码一样的commit id?

用一个简单易记的名字来代替它,那该多方便!

今天要介绍的就是Git的标签(Tag) 功能------它可以为某个特定的提交起一个有意义的名字,比如v1.0、release-2023。


一、理解标签

每次提交Git都会生成一个唯一的commit id(例97811abd1d43774aeb54fee32bf4fc76b2b08170)。虽然这个ID很精确,但对人来说太难记了。而标签就像给这个提交贴上一个"贴纸",你可以用v1.0这样的名字来代表那次提交。

标签的典型应用场景:

  • 发布版本 :比如软件正式发布时,打上v1.0.0的标签。

  • 里程碑节点 :完成一个重要功能,打上feature-login-done的标签。

  • 快速定位:需要回退到某个稳定版本时,直接用标签名,不用再找commit id。

二、创建标签

Git支持两种标签:轻量标签 (lightweight)和附注标签(annotated)。我们最常用的是附注标签,它可以附带说明信息。

2.1 给最新的提交打标签

如果你当前正在某个分支(比如master)上,并且想给最后一次提交打标签,直接运行:

这条命令会创建一个名为v1.0的标签,指向最新的提交。

2.2 给指定的提交打标签

如果你想给历史中的某次提交打标签,可以**先用git log找到它的commit id(通常只需前几位),**然后指定:

复制代码
git tag v0.9 c6ce3f0

这里c6ce3f0是某次提交的commit id前缀,Git会自动找到完整的提交。

2.3 创建带说明的标签(推荐)

为了让标签信息更丰富,可以用-a(annotated)和-m(message)参数:

复制代码
git tag -a v1.0 -m "第一个正式版本发布"

这样,标签就包含了一条说明,日后查看时会非常清晰。

2.4 查看所有标签

复制代码
git tag

这个命令会按字母顺序列出所有标签,而不是按时间顺序。

2.5 查看某个标签的详细信息

复制代码
git show v1.0

你会看到该标签对应的提交信息、作者、日期,以及附带的说明(如果有)。

三、操作标签

3.1 删除本地标签

如果标签打错了,或者不再需要,可以轻松删除:

复制代码
git tag -d v0.9

这条命令会从本地仓库中删除名为v0.9的标签**。注意,这只是删除本地的,远程仓库中可能还保留着。**

3.2 推送标签到远程仓库

默认情况下,git push并不会把标签推送到远程。你需要显式地推送标签:

复制代码
git push origin v1.0

如果你想一次性推送所有本地标签

复制代码
git push origin --tags

推送成功后,远程仓库(比如Gitee/GitHub)上也能看到这些标签。

3.3 删除远程标签

如果你已经推送了一个标签到远程,后来又想删除它,需要分两步:

  1. 先在本地删除:

    git tag -d v1.0

2.再删除远程的标签(注意命令格式):

复制代码
git push origin :refs/tags/v1.0

或者使用更简洁的写法:

复制代码
git push origin --delete v1.0
相关推荐
MinggeQingchun8 小时前
Git - 令牌登录
git
xhy_070711 小时前
Git 合并冲突怎么解决?用 AI 处理冲突的流程、Prompt 和 4 个易错点
人工智能·git·安全·prompt·ai编程·代码复审
Zhou14113613 小时前
Git_02_GitLab协作与CI_CD
git·ci/cd·gitlab
Zhou14113614 小时前
Git_03_GitFlow分支工作流
git
Flynt14 小时前
把 bug tracker 塞进 git 仓库,同步和冲突怎么解决?我把 git-bug 拆开实测了一遍
分布式·git·开源
louisgeek1 天前
Git submodule 子模块
git
imDwAaY2 天前
6篇文章讲清楚Git:Git 实用技巧:暂存现场、挑选提交与定位 Bug (5/6)
git·后端
imDwAaY2 天前
6篇文章讲清楚Git:Git 团队开发实践:从 Pull Request 到版本发布 (6/6)
git·后端
誰能久伴不乏2 天前
看懂 Git 团队协作全流程:分支、提交、PR、rebase 到底在干嘛
git
sunshine22 girl2 天前
git tag-项目流程
git