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>
字段必须之一always
,never
,或auto
(如果不存在时,表现得好像 always
给予)。 - -i
--ignore-case -
排序和过滤标签是不分大小写的。
- --column[=<options>]
--no-column -
在列中显示标签列表。没有选项的
--column
和--no-column
分别相当于always
和never
。 -
此选项仅适用于列出没有注释行的标签时。
- --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>
可以是一个verbatim
,whitespace
和strip
。所述strip
模式是默认值.verbatim
模式完全不改变消息时,whitespace
将删除刚刚前/后空白线和strip
同时去除空白和评注。 - --create-reflog
-
为标签创建引用日志。
- --format=<format>
-
从显示的标记ref及其指向的对象插入
%(fieldname)
的字符串。未指定时,默认为%(refname:strip=2)
。 - <tagname>
-
要创建,删除或描述的标签的名称。新标签名称必须通过
git-check-ref-format
定义的所有检查。其中一些检查可能会限制标签名称中允许的字符。 - <commit>
<object> -
新标签将引用的对象,通常是一个提交。默认为 HEAD。