Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.1 → 2.47.0 no changes
- 2.43.0 11/20/23
- 2.42.1 → 2.42.3 no changes
- 2.42.0 08/21/23
- 2.32.1 → 2.41.2 no changes
- 2.32.0 06/06/21
- 2.31.1 → 2.31.8 no changes
- 2.31.0 03/15/21
- 2.7.6 → 2.30.9 no changes
- 2.6.7 05/05/17
- 2.1.4 → 2.5.6 no changes
- 2.0.5 12/17/14
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 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 git-fsck[1] check.
The "fsck" check done by mktag is stricter than what 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 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 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 git[1] suite