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.0release-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
相关推荐
深海鱼在掘金5 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
noravinsc5 天前
关于Git Flow
git
蜜獾云5 天前
在Git中配置用户名和密码
git
scx_link5 天前
通过git bash在本地创建分支,并推送到远程仓库中
开发语言·git·bash
南大白5 天前
IntelliJ IDEA 运行时的 JVM 本地内存溢出崩溃
git
码农小旋风6 天前
Claude Code 基础用法大全:对话、分析、修改、测试、Git 和工作流
人工智能·git·chatgpt·claude
南大白6 天前
Git 撤回提交完整方案
git
像风一样的男人@6 天前
python --实现代理服务器
git·ui
sbjdhjd6 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
码云数智-大飞6 天前
Go Channel 详解:并发通信的正确姿势
前端·数据库·git