likes
comments
collection
share

用 git 给项目打 tag 标签

作者站长头像
站长
· 阅读数 5

为什么需要打 tag 标签

当某一次稳定的代码提交后,要准备发版时,我们使用 git 给这次提交打 tag 标签来标记发版结点。tag 标签会记录这次版本的 commit-id,以便后期回溯版本

常见 tag 命令

查看当前分支下的所有 tag

$ git tag

用 git 给项目打 tag 标签

$ git tag -l "v1" // 加上参数 -l 可以使用通配符来过滤 tag

用 git 给项目打 tag 标签

新建 tag 标签

tag 分为两种,轻量标签与附注标签

  • 轻量标签,是指向提交对象的引用

    $ git tag v2.0 // 新建一个名为 v2.0 的 tag
    

    用 git 给项目打 tag 标签

  • 附注标签,是 git 仓库中的一个完整的独立对象,是可以被校验的。附注标签包含了打标签者的名字、电子邮件地址、日期时间;还可以使用GNU Privacy Guard(GPG)签名与验证,建议使用附注标签

    $ git tag -a v2.1 -m "这是版本2.1" // 加上参数 -a 可以创建一个带备注的 tag,备注信息跟在参数 -m 后面
    

    用 git 给项目打 tag 标签

    $ git tag -a v2.2 // 如果未传入参数 -m ,则创建标签时系统会自动打开编辑器让你填写备注信息
    

    用 git 给项目打 tag 标签

    如果不想写备注信息了,输入:qa,然后回车 用 git 给项目打 tag 标签

补打 tag 标签

打 tag 不需要在 HEAD 之上,也可以在某次历史提交上打(通过 git log 获取之前的提交记录commit-id)

$ git tag -a v3.0 ff28fd51 -m "给之前的提交记录打tag" // 给指定 commit-id 打tag

用 git 给项目打 tag 标签

查看 tag 详细信息

$ git show v2.1

用 git 给项目打 tag 标签

将 tag 同步到远程仓库

使用 git push 并不会将 标签对象推送至远程仓库,必须使用 git push origin [tagname] 显式操作

$ git push origin v3.0  // 将本地名为 v3.0 的标签推送至远程仓库
$ git push origin --tags // 将本地所有标签一次性推送至远程仓库

用 git 给项目打 tag 标签

然后我们在远程仓库上就可以看到这个 tag 了 用 git 给项目打 tag 标签

切换 tag

与分支管理一样,我们也是可以直接切换到某个 tag 上去的,切换完会提示你当前处于一个 "detached HEAD" 状态,此时我们不在任何分支上,处于游离状态(tag 相当于是一个快照,我们是不能直接更改它的代码),但可以基于这个 tag 创建一个分支

$ git checkout v3.0
$ git checkout -b [newbranchname] [tagname]

删除某个 tag

当我们误打 tag 或需要修改 tag 时,需要先将旧 tag 删除,再打新 tag

删除本地 tag

$ git tag -d v2.0

用 git 给项目打 tag 标签

删除远程仓库中的 tag

$ git push origin :refs/tags/v2.0
$ git push origin --delete tag

用 git 给项目打 tag 标签 这样远程就看不到 v3.0 这个 tag 了 用 git 给项目打 tag 标签