{
    "content": [
        {
            "type": "text",
            "text": "# git-mktag(1) (man)\n\n**Summary:** git-mktag - Creates a tag object with extra validation\n\n**Synopsis:** git mktag\n\n## Flags\n\n| Flag | Long | Arg | Description |\n|------|------|-----|-------------|\n| — | --strict | — | By default mktag turns on the equivalent of git-fsck(1) --strict mode. Use --no-strict to disable it. |\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (3 lines)\n- **DESCRIPTION** (21 lines)\n- **OPTIONS** (1 lines) — 1 subsections\n  - --strict (3 lines)\n- **TAG FORMAT** (13 lines)\n- **GIT** (5 lines)\n\n## Full Content\n\n### NAME\n\ngit-mktag - Creates a tag object with extra validation\n\n### SYNOPSIS\n\ngit mktag\n\n### DESCRIPTION\n\nReads a tag contents on standard input and creates a tag object. The output is the new tag’s\n<object> identifier.\n\nThis command is mostly equivalent to git-hash-object(1) invoked with -t tag -w --stdin. I.e.\nboth of these will create and write a tag found in my-tag:\n\ngit mktag <my-tag\ngit hash-object -t tag -w --stdin <my-tag\n\nThe difference is that mktag will die before writing the tag if the tag doesn’t pass a git-\nfsck(1) check.\n\nThe \"fsck\" check done mktag is stricter than what git-fsck(1) would run by default in that\nall fsck.<msg-id> messages are promoted from warnings to errors (so e.g. a missing \"tagger\"\nline is an error).\n\nExtra headers in the object are also an error under mktag, but ignored by git-fsck(1). This\nextra check can be turned off by setting the appropriate fsck.<msg-id> varible:\n\ngit -c fsck.extraHeaderEntry=ignore mktag <my-tag-with-headers\n\n### OPTIONS\n\n#### --strict\n\nBy default mktag turns on the equivalent of git-fsck(1) --strict mode. Use --no-strict to\ndisable it.\n\n### TAG FORMAT\n\nA tag signature file, to be fed to this command’s standard input, has a very simple fixed\nformat: four lines of\n\nobject <hash>\ntype <typename>\ntag <tagname>\ntagger <tagger>\n\nfollowed by some optional free-form message (some tags created by older Git may not have\ntagger line). The message, when it exists, is separated by a blank line from the header. The\nmessage part may contain a signature that Git itself doesn’t care about, but that can be\nverified with gpg.\n\n### GIT\n\nPart of the git(1) suite\n\n\n\nGit 2.34.1                                   02/26/2026                                 GIT-MKTAG(1)\n\n"
        }
    ],
    "structuredContent": {
        "command": "git-mktag",
        "section": "1",
        "mode": "man",
        "summary": "git-mktag - Creates a tag object with extra validation",
        "synopsis": "git mktag",
        "flags": [
            {
                "flag": "",
                "long": "--strict",
                "arg": null,
                "description": "By default mktag turns on the equivalent of git-fsck(1) --strict mode. Use --no-strict to disable it."
            }
        ],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 21,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "--strict",
                        "lines": 3,
                        "long": "--strict"
                    }
                ]
            },
            {
                "name": "TAG FORMAT",
                "lines": 13,
                "subsections": []
            },
            {
                "name": "GIT",
                "lines": 5,
                "subsections": []
            }
        ]
    }
}