git-mktag(1)
============

NAME
----
git-mktag - Creates a tag object with extra validation


SYNOPSIS
--------
[verse]
'git mktag'

DESCRIPTION
-----------

Reads a tag's contents on standard input and creates a tag object. The
output is the new tag's <object> identifier.

This command is mostly equivalent to linkgit:git-hash-object[1]
invoked with `-t tag -w --stdin`. I.e. both of these will create and
write a tag found in `my-tag`:

    git mktag <my-tag
    git hash-object -t tag -w --stdin <my-tag

The difference is that mktag will die before writing the tag if the
tag doesn't pass a linkgit:git-fsck[1] check.

The "fsck" check done by mktag is stricter than what linkgit:git-fsck[1]
would run by default in that all `fsck.<msg-id>` messages are promoted
from warnings to errors (so e.g. a missing "tagger" line is an error).

Extra headers in the object are also an error under mktag, but ignored
by linkgit:git-fsck[1]. This extra check can be turned off by setting
the appropriate `fsck.<msg-id>` variable:

    git -c fsck.extraHeaderEntry=ignore mktag <my-tag-with-headers

OPTIONS
-------

--strict::
	By default mktag turns on the equivalent of
	linkgit:git-fsck[1] `--strict` mode. Use `--no-strict` to
	disable it.

Tag Format
----------
A tag signature file, to be fed to this command's standard input,
has a very simple fixed format: four lines of

  object <hash>
  type <typename>
  tag <tagname>
  tagger <tagger>

followed by some 'optional' free-form message (some tags created
by older Git may not have a `tagger` line).  The message, when it
exists, is separated by a blank line from the header.  The
message part may contain a signature that Git itself doesn't
care about, but that can be verified with gpg.

GIT
---
Part of the linkgit:git[1] suite
