使用 git tag 给项目打标签

2022-08-09 12:09:25

随着开发的深入,一些开发的规范也在慢慢落实。对项目的每个版本打上标签就是其中很重要的一项,下面说一下打标签的一些常规操作。

使用命令行提示

使用命令行提示查看 tag 相关命令行:

$ git tag -h

创建标签

# 通过 git tag <tagname> 创建一个标签:
$ git tag v1.0.0  # 默认标签是打在最新提交的commit上的。

# 对特定的commit id对项目打标签
$ git tag v1.0.8 ba9f9e  # 如果想给历史commit 打上标签,只需在后面加上 commit id 即可。

上传标签

git push并不会将 tag 推送到远程仓库服务器上,在创建完 tag 后我们需要手动推送 tag。

# 推送单个 tag:
$ git push origin v1.0.8

# 一次推送所有本地 tag:
$ git push origin --tags

查看标签

# 查看标签列表
$ git tag

# 查看最近n行信息
$ git tag -n3 # 这时候可以用查看最近3行的 tag 信息

# 列出相关标签 
$ git tag -l "v1.0*" # 查看 1.0.x 版本的tag,等同于 git tag --list

# 查看标签详细信息
$ git show v1.0.8  # 命令查看标签详细信息

删除标签

先删除本地仓库上的标签,然后更新到远程仓库

# git tag -d <tagname> 删除本地仓库的标签
$ git tag -d v1.0.9   # 删除本地仓库的v1.0.9标签

# 然后用 git push <remote> :refs/tags/<tagname> 更新远程仓库:
$ git push origin :refs/tags/v1.0.9

或者先删除远程标签,然后同步到本地

# git push origin --delete <tagname> 删除远程标签
$ git push origin --delete v1.0.7

# 将远程标签同步到本地
$ git fetch --prune --prune-tags
注意:git fetch --prune --prune-tags 会强制同步远程 tag 到本地,所以会导致本地新建的未提交到远程服务器的 tag 也会被删除。

给标签添加信息

上文提到的创建标签属于创建轻量标签,可以在创建标签时通过-m <message>添加附加信息:

$ git tag v2.0.0 -m "version 2.0.0 released"  # 添加附加信息
$ git tag v2.0.0 -m "version 2.0.0 released" -m "rebuild with react hooks" -m "support typescript"    # 添加多行信息

如果想要编辑已有tag信息,除了删除这个tag重新打tag之外还可以用git tag <tagname> <tagname>^{} -f -m "<new message>"修改 tag 信息

$ git tag v1.0.0 v1.0.0^{} -f -m "first commit"

此时如果线上已经存在这个tag,修改后想将它推送到远程代码仓库需要加-f强制推送

$ git push origin -f v1.0.0
  • 作者:hanscal
  • 原文链接:https://blog.csdn.net/weixin_43145427/article/details/123796072
    更新时间:2022-08-09 12:09:25