• 前言
  • 0x1 GIT 标签常用指令
  • 0x2 轻量标签
  • 0x3 附注标签
  • 0x4 远程仓库中的标签

前言

在我们开发的过程中,可能经过多次 commit 提交才会确定一个版本,那么除了用 commit comments 来标识一次提交记录,还有没有什么更好的办法呢?GIT 为我们提供了标签这个功能,使用标签可以对某一次提交记录做上一个小标记,就像我们看书的时候,看到很有意思想要做个记号,可以用小的标签纸贴在那一页的边上,这让我们以后可以更方便的索引。


0x1 GIT 标签常用指令

GIT 中的标签分为两种,一种是轻量标签(lightweight tag),一种是附注标签(annotated tag)。以下是一些常用的与标签相关的命令:

  • git tag <lightweght_name>:为当前分支所在的提交记录打上轻量标签。
  • git tag <lightweght_name> <commit SHA-1 value>:为某次具体的提交记录打上轻量标签。
  • git tag -a <anotated_name> -m <tag_message>:为当前分支所在的提交记录打上附注标签。
  • git tag:列出所有的标签名。
  • git tag -d <tag_name>:删除某个标签,本质上就是移除 .git/refs/tags/ 中对应的文件。
  • git show <tag_name>:显示标签对应提交记录的具体信息。
  • git push <remote> <tag_name>:推送某个标签到远程仓库。
  • git push <remote> --tags:推送所有标签到远程仓库。
  • git push <remote> --delete <tag_name>:删除远程仓库中的某个标签。

[注]:标签与分支不相关。


0x2 轻量标签

轻量标签的创建十分简单,使用命令 git tag <lightweight_name> 则会为当前所在的提交记录打上一个轻量标签。那么这个命令会发生什么呢?其实很简单,在使用这个命令后,会在 .git/refs/tags/ 目录下生成一个以 <lightweight name> 为名字的文件,文件中存放了标签所对应提交记录的 commit 对象的 SHA-1 值。如下图所示:

假设我想为上述三个提交记录中的第一次提交打上版本 0 的标签,也是很容易做到的,同时使用 git log 命令时也会显示出标签的名称:


0x3 附注标签

创建附注标签也非常简单,只要加上 -a 选项即可。同时还可以通过 -m 选项指定一条存储在标签中的信息,如果没有指定则 GIT 会打开编辑器要求你输入。假如我们为当前的提交记录打上一个附注标签,可以查看标签如下:

附注标签同样也在 .git/refs/tags/ 目录下生成对应的文件,但是这个文件中不再存储该标签对应的 commit 对象的 SHA-1 值,而是存放了一个称为 tag 对象的 SHA-1 值,这个 tag 对象中就存储了与这个附注标签相关的信息(包括打标签者的名字、电子邮件地址、日期时间、一个标签信息)和这个标签所对应的 commit 对象的 SHA-1 值。 我们可以查看如下:


0x4 远程仓库中的标签

我们想想标签文件所在的文件夹和其中保存的信息,是不是觉得其和分支很像?这使得他也有一个特点,就是在我们使用 git push 命令推送某个分支的时候,标签并不会被推送到远程仓库,所以我们必须显式的推送标签到远程仓库

使用下面两种命令则可以推送标签到远程仓库:

  • git push <remote> <tag_name>:推送某个标签到远程仓库。
  • git push <remote> --tags:推送所有标签到远程仓库。

同样,在删除本地的标签后,要想删除远程仓库的标签,也必须使用的显式的命令:

  • git push <remote> --delete <tag_name>:删除远程仓库中的某个标签。
  • git push <remote> :refs/tags/<tagname>:删除远程仓库某个标签的等价方式,相当于将冒号前面的空值推送到远程标签名,从而高效地删除它。

GIT 中如何打标签相关推荐

  1. GIT 中如何打标签(git tag)

    前言 0x1 GIT 标签常用指令 0x2 轻量标签 0x3 附注标签 0x4 远程仓库中的标签 前言 在我们开发的过程中,可能经过多次 commit 提交才会确定一个版本,那么除了用 commit ...

  2. GIT中打标签(tag)的意义

    在git代码管理时,有时候我们想对某个特定的commit 添加标记,比如要标识版本信息,这时候就可以用的git中的打标签功能.打tag就类似于我们看书放书签一样,以后可以直接用tag找到提交的位置,不 ...

  3. git——04 远程仓库/标签/别名

    远程仓库的使用 为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库. 远程仓库是指托管在因特网或其他网络中的你的项目的版本库. 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以 ...

  4. git 列出标签_Git标签介绍:如何在Git中列出,创建,删除和显示标签

    git 列出标签 Tagging lets developers mark important checkpoints in the course of their projects' develop ...

  5. idea中使用git创建分支与标签

    目录 1. idea使用分支 2 在本地仓库中 添加分支 ​编辑 3. 提交分支 4 push到远程仓库​编辑 .gitignore文件通用模板 5. 常用分支操作 5.1 分支创建 5.2 查看分支 ...

  6. 在Git中,HEAD,工作树和索引之间有什么区别?

    有人能告诉我在Git中HEAD,工作树和索引之间的区别吗? 据我所知,它们都是不同分支的名称. 我的假设是否正确? 编辑 我找到了这个 单个git存储库可以跟踪任意数量的分支,但是您的工作树只与其中一 ...

  7. 如何在Git中更改多次提交的作者和提交者名称以及电子邮件?

    我当时正在学校计算机上编写一个简单的脚本,然后将更改提交到Git(在笔驱动器中的一个回购中,该回购是从家里的计算机中克隆的). 经过几次提交后,我意识到我正在以root用户身份提交东西. 有什么办法可 ...

  8. 关于Git中的一些常用的命令

    深入了解git的checkout命令 检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令. 因为这条命令会重写工作区.检出命令的用法如下: 用法一: git che ...

  9. Git之常见的标签操作

    目录 标签管理 创建标签 操作标签 标签管理 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的 ...

最新文章

  1. (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装
  2. 【CTF大赛】100步getshell之就差一步——The MOVAPS issue
  3. 互联网1分钟 |1214
  4. 配置mysql数据库时出再错误:LookupError No installed app with label admin(亲测)
  5. 【DP】小明游天界(zjoj 2149)
  6. mysql error 1594_【MySQL】解决mysql的 1594 错误-阿里云开发者社区
  7. 哥斯拉Godzilla shell管理工具
  8. 简单介绍在线OTA几款平台
  9. 信息安全工程师考试大纲(2016)
  10. 教你区别几款常用的U盘修复工具
  11. PMU 精密测量单元
  12. 父亲节!程序员给父亲一份代码信
  13. 将win7笔记本电脑变身WiFi热点,让手机、笔记本共享上网
  14. win10输入法频繁自动中英文切换的问题
  15. VRP基础(华为设备操作系统)
  16. Low Poly Epic City的脚本研究日志(2)(2022.3.1)
  17. 随想:区块链提供数字科技霸权之外的第三选项
  18. EXCEL获取今天是今年的第几周
  19. betaflight 10.8.0_win10调试笔记(未完待续)
  20. EDI的含义,作用方式以及主要优势

热门文章

  1. 零基础go还是python_零基础学习Python的经验之谈
  2. 【开发工具】【perf】性能分析工具perf的编译和使用说明
  3. 使用浏览器访问服务器shell(ssh方式)
  4. 聊聊我在职场的至暗时刻!
  5. 一款界面友好的思维导图软件MindMaster
  6. jquery实现图片拖动
  7. 联筑赚赋能传统模架产业链数字化 促进产业发展互利共赢
  8. 第32期:索引设计(索引设计详细规范)
  9. 小米首页二级菜单栏实现原理
  10. 【沃顿商学院学习笔记】领导力——Business Impact:03商业如何驱动影响力的案例Some Cases