返回顶部
本页目录

tag

创建、列出、删除或验证用GPG签名的标签对象

实例

列出所有tag

                            
  • git tag -l

查看远程tag

                            
  • git show-ref --tag

新建一个tag在当前commit

                            
  • git tag [tagname]

新建一个tag在指定commit

                            
  • git tag [tagname] [commit]

删除本地tag

                            
  • git tag -a 版本号 -m “注释″

删除远程 tag

                            
  • git push origin :refs/tags/tagName

推送至远程 tag

                            
  • git push origin --tags

描述

refs/tags/ 添加标签引用,除非给出 -d/-l/-v 来删除,列出或验证标签。

除非给出 -f ,否则命名标记必须还不存在。

如果传递了 -a-s-u <keyid> 之一,则该命令将创建 tag 对象,并需要标记消息。除非给出 -m <msg>-F <file> ,否则将启动编辑器供用户键入标记消息。

如果 -m <msg>-F <file> 给出和 -a-s-u <keyid> 不存在, -a 是隐含的。

否则,将创建一个直接指向给定对象的标签引用(即轻量级标签)。

当使用 -s-u <keyid> 时,将创建一个GnuPG签名标签对象。如果不使用 -u <keyid> ,则使用当前用户的提交者身份来查找用于签名的GnuPG密钥。配置变量 gpg.program 用于指定自定义GnuPG二进制文件。

标记对象(使用 -a-s-u 创建)称为“带注释”标记;它们包含创建日期,标记者名称和电子邮件,标记消息以及可选的GnuPG签名。而“轻量级”标签只是对象(通常是提交对象)的名称。

带注释的标签用于释放,而轻量标签则用于私有或临时对象标签。因此,默认情况下,一些用于命名对象的git命令(例如 git describe )将忽略轻量级标签。

选项

-a
--annotate

制作一个无符号、有注释的标签对象。

-s
--sign

使用默认电子邮件地址的密钥制作 GPG 签名标签。标签 GPG 签名的默认行为由 tag.gpgSign 配置变量(如果存在)控制,否则被禁用

--no-sign

覆盖 tag.gpgSign 配置变量,该变量设置为强制对每个标签进行签名。

-u <keyid>
--local-user=<keyid>

使用给定的密钥,制作一个GPG签名的标签。

-f
--force

用给定的名称替换现有的标签(而不是失败)。

-d
--delete

刪除現有的標籤。

-v
--verify

验证给定标签名的 GPG 签名。

-n<num>

<num>指定使用-l时从注释中打印多少行(如果有)。暗示 --list

默认设置是不打印任何注释行。如果 -n 没有给出数字,则仅打印第一行。如果未注释标签,则显示提交消息。

-l
--list

列出标签。使用可选的 <pattern>... ,例如 git tag --list 'v-*' ,仅列出与模式匹配的标签。

在没有参数的情况下运行 git tag 也会列出所有标签。模式是 shell 通配符(即使用 fnmatch(3)匹配)。可以给出多个模式;如果其中任何一个匹配,就会显示该标签。

如果提供了其他类似列表的选项(例如 --contains ),则隐式提供此选项

--sort=<key>

根据给定的键排序。

--color[=<when>]

遵守 --format 选项中指定的任何颜色。所述 <when> 字段必须之一 alwaysnever ,或 auto (如果 不存在时,表现得好像 always 给予)。

-i
--ignore-case

排序和过滤标签是不分大小写的。

--column[=<options>]
--no-column

在列中显示标签列表。没有选项的 --column--no-column 分别相当于 alwaysnever

此选项仅适用于列出没有注释行的标签时。

--contains [<commit>]

仅列出包含指定提交的标签(如果未指定,则为HEAD)

--no-contains [<commit>]

仅列出不包含指定提交的标签(如果未指定,则为 HEAD)

--merged [<commit>]

仅列出其提交可从指定提交(如果未指定,则为 HEAD )可到达的标记。

--no-merged [<commit>]

仅列出其提交无法从指定提交(如果未指定,则为 HEAD )到达的标记。

--points-at <object>

仅列出给定对象的标签(如果未指定,则为HEAD)

-m <msg>
--message=<msg>

使用给定的标记消息(而不是提示)。如果给出了多个 -m 选项,则它们的值将串联为单独的段落。意味着 -a 如果没有的 -a-s ,或 -u <keyid> 给出。

-F
--file=<file>

从给定的文件中获取标签消息。使用 - 从标准输入中读取消息。意味着 -a 如果没有的 -a-s ,或 -u <keyid> 给出。

-e
--edit

-F 的文件中获取的消息和 -m 的命令行中获取的消息通常用作未修改的标记消息。此选项使您可以进一步编辑从这些来源获取的消息。

--cleanup=<mode>

此选项设置清除标签消息的方式。所述 <mode> 可以是一个 verbatimwhitespacestrip 。所述 strip 模式是默认值. verbatim 模式完全不改变消息时, whitespace 将删除刚刚前/后空白线和 strip 同时去除空白和评注。

--create-reflog

为标签创建引用日志。

--format=<format>

从显示的标记ref及其指向的对象插入 %(fieldname) 的字符串。未指定时,默认为 %(refname:strip=2)

<tagname>

要创建,删除或描述的标签的名称。新标签名称必须通过git-check-ref-format定义的所有检查。其中一些检查可能会限制标签名称中允许的字符。

<commit>
<object>

新标签将引用的对象,通常是一个提交。默认为 HEAD。