git为项目打tag和使用git show查看tag内容的过程

1简介

在.git/refs/tags/目录下增加一个标签参考,除非-d/ -l/ -v被指定来删除,列举和验证tags。
除非-f被指定了,具名的tag不是必须存在的。
如果-a, -s, 或者-u 被传递了,该命令会创建一个tag对象,并且需要一个tag 信息。
如果没有传递-m 或者-F ,会启动一个编辑器,让用户键入tag信息。
使用-a, -s或者-u创建的tag对象被称为"annotated" tags,它们包含创建日期,标签名,e-mail,标签信息和一个可选的GnuPG签名。
也需要注意annotated tag和lightweight tag的不同。

-f --force
使用指定的名称替换一个已经存在的tag
-d --delete
删除具有指定名称的已经存在的tag
-n 
可以打印所有的tag
--list '1.0.*'
可以打印符合指定模式的tag

2打tag

2.1远程仓库地址

全恒@Lenovo-PC MINGW64 /d/系统/qw/qw (develop)
$ git remote -v
origin  git@gitlab.com:yanchenmochen/qw.git (fetch)
origin  git@gitlab.com:yanchenmochen/qw.git (push)

2.2创建tag对象

全恒@Lenovo-PC MINGW64 /d/系统/qw/qw (develop)
$ git tag -a 1.0.0 -m "带回杭州的系统版本"

2.3把tag推送到远端仓库

全恒@Lenovo-PC MINGW64 /d/系统/qw/qw (develop)
$ git push origin --tags
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 203 bytes | 13.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To gitlab.com:yanchenmochen/qw.git
 * [new tag]         1.0.0 -> 1.0.0

2.4显示所有tag

全恒@Lenovo-PC MINGW64 /d/系统/qw/qw (develop)
$ git tag -l
1.0.0

2.5验证

在这里插入图片描述

2.6使用git show查看tag的内容

在列出了git的所有标签之后,我们常需要查看某个tag所指向修改内容,因此可以使用git show命令查看tag内容。

git show命令用于显示各种类型的对象

查看上节的tag内容可以使用如下的命令:

git tag 1.0.0

即可查看到该tag对应的内容。

3修改已经存在的tag

在之前的代码演示中,已经新建了一个tag1.0.0,假如说在此刻我们发现制作的tag在部署之后发现了一些新的问题,
并且紧急修改一下一部分代码并想把提交过后的代码位置制作成tag。此时该如何进行。
如果你从来没有把这个tag推送到远端,只需要重新打tag,即re-tag,使用-f参数替换旧tag即可。然后你就完成了。
如果你已经推送到远端这个tag,或者别人可以直接直接阅读你的仓库,别人已经可以看到一个tag名,
此时有两种方式如果此时你仍然维持tag名称的话,
1, 明智的情形:如果此时你仍然维持tag名称的话,
你可能会处于这样一种情景,即两个人都有"version X"但是两个人实际上具有不同的X,因此可以通过重新打tag"X.1"。这很明智
2, 一种愚蠢的情形是,你确实也想要称新版本为“X”,即使别人已经可以看到原来的tag,所以你可以重新使用git tag -f
,就好像你并没有已经推送原来的tag一样。

如果某人从你那里获取了一个发布tag,你不能通过更新你自己的tag为他们直接改变tag。这是一个比较大的安全问题,
因为人们必须能够相信他们的tag-name,如果你真的想要做这个不明智的选择,你需要高速相关人你弄错了,你可以通过制作一个
public 声明告诉别人如下的内容:

ok, 我弄错了,并且我曾经发布了一个早期的版本版本,并且被tag成X,然后我修改了某些代码并且再次重新re-tag 这个*修订*版本
为X,如果你获取了这个错误的tag,你可以通过执行如下方式获取正确的tag
git tag -d X
git fetch origin tag X
来获取更新过后的tag。
你可以通过测试tag是否正确
git rev-parse X

该命令应该返回"8103fdaf9d8f",否则你仍然没有获取更新后的tag。

3.1重新修改tag----re-tag

由于当前工作中,tag的制作仅仅为一种记录,因此并不需要太过关注共享tag的问题,
因此,比如说我想要修改之前1.0.0的tag到修改代码过后的某个提交,可以如下操作

git tag -a 1.0.0 -m "修订过后的版本"
git push origin --tags -f 

就好像没有推送过tag1.0.0是的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值