git-tag(1)
==========

NAME
----
git-tag - Create, list, delete or verify a tag object signed with GPG


SYNOPSIS
--------
[verse]
'git-tag' [-a | -s | -u <key-id>] [-f | -v] [-m <msg> | -F <file>]  <name> [<head>]
'git-tag' -d <name>...
'git-tag' -l [<pattern>]

DESCRIPTION
-----------
Adds a 'tag' reference in `.git/refs/tags/`

Unless `-f` is given, the tag must not yet exist in
`.git/refs/tags/` directory.

If one of `-a`, `-s`, or `-u <key-id>` is passed, the command
creates a 'tag' object, and requires the tag message.  Unless
`-m <msg>` is given, an editor is started for the user to type
in the tag message.

Otherwise just the SHA1 object name of the commit object is
written (i.e. a lightweight tag).

A GnuPG signed tag object will be created when `-s` or `-u
<key-id>` is used.  When `-u <key-id>` is not used, the
committer identity for the current user is used to find the
GnuPG key for signing.

`-d <tag>` deletes the tag.

`-v <tag>` verifies the gpg signature of the tag.

`-l <pattern>` lists tags that match the given pattern (or all
if no pattern is given).

OPTIONS
-------
-a::
	Make an unsigned, annotated tag object

-s::
	Make a GPG-signed tag, using the default e-mail address's key

-u <key-id>::
	Make a GPG-signed tag, using the given key

-f::
	Replace an existing tag with the given name (instead of failing)

-d::
	Delete existing tags with the given names.

-v::
	Verify the gpg signature of given the tag

-l <pattern>::
	List tags that match the given pattern (or all if no pattern is given).

-m <msg>::
	Use the given tag message (instead of prompting)

-F <file>::
	Take the tag message from the given file.  Use '-' to
	read the message from the standard input.

CONFIGURATION
-------------
By default, git-tag in sign-with-default mode (-s) will use your
committer identity (of the form "Your Name <your@email.address>") to
find a key.  If you want to use a different default key, you can specify
it in the repository configuration as follows:

[user]
    signingkey = <gpg-key-id>

Author
------
Written by Linus Torvalds <torvalds@osdl.org>,
Junio C Hamano <junkio@cox.net> and Chris Wright <chrisw@osdl.org>.

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite
