Programming is an endless loop; it's either you break or exit.
Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA).
You are free to copy, reproduce, distribute, display, and make adaptations but you must provide proper attribution.
Visit https://creativecommons.org/ or send an email to info@creativecommons.org for more information about the License.
Add a tag reference in refs/tags/, unless -d/-l/-v is given to delete, list or verify tags.
Unless -f is given, the named tag must not yet exist.
If one of -a, -s, or -u <keyid> is passed, the command creates a tag object, and requires a tag message. Unless -m <msg> or -F <file> is given, an editor is started for the user to type in the tag message.
If -m <msg> or -F <file> is given and -a, -s, and -u <keyid> are absent, -a is implied.
Otherwise just a tag reference for the SHA-1 object name of the commit object is created (i.e. a lightweight tag).
A GnuPG signed tag object will be created when -s or `-u
` is used. When `-u ` is not used, the committer identity for the current user is used to find the GnuPG key for signing. The configuration variable `gpg.program` is used to specify custom GnuPG binary.
Tag objects (created with `-a`, `-s`, or `-u`) are called "annotated" tags; they contain a creation date, the tagger name and e-mail, a tagging message, and an optional GnuPG signature. Whereas a "lightweight" tag is simply a name for an object (usually a commit object).
Annotated tags are meant for release while lightweight tags are meant for private or temporary object labels. For this reason, some git commands for naming objects (like `git describe`) will ignore lightweight tags by default.
OPTIONS
=======
`-a`; `--annotate`
: Make an unsigned, annotated tag object
`-s`; `--sign`
: Make a GPG-signed tag, using the default e-mail address’s key.
`-u `; `--local-user=`
: Make a GPG-signed tag, using the given key.
`-f`; `--force`
: Replace an existing tag with the given name (instead of failing)
`-d`; `--delete`
: Delete existing tags with the given names.
`-v`; `--verify`
: Verify the GPG signature of the given tag names.
`-n`
: <num> specifies how many lines from the annotation, if any, are printed when using -l. Implies `--list`.
The default is not to print any annotation lines. If no number is given to `-n`, only the first line is printed. If the tag is not annotated, the commit message is displayed instead.
`-l`; `--list`
: List tags. With optional `...`, e.g. `git tag --list
'v-*'`, list only the tags that match the pattern(s).
Running "git tag" without arguments also lists all tags. The pattern is a shell wildcard (i.e., matched using fnmatch(3)). Multiple patterns may be given; if any of them matches, the tag is shown.
This option is implicitly supplied if any other list-like option such as `--contains` is provided. See the documentation for each of those options for details.
`--sort=`
: Sort based on the key given. Prefix `-` to sort in descending order of the value. You may use the --sort=<key> option multiple times, in which case the last key becomes the primary key. Also supports "version:refname" or "v:refname" (tag names are treated as versions). The "version:refname" sort order can also be affected by the "versionsort.suffix" configuration variable. The keys supported are the same as those in `git for-each-ref`. Sort order defaults to the value configured for the `tag.sort` variable if it exists, or lexicographic order otherwise. See linkgit:git-config\[1\].
`-i`; `--ignore-case`
: Sorting and filtering tags are case insensitive.
`--column[=]`; `--no-column`
: Display tag listing in columns. See configuration variable column.tag for option syntax.`--column` and `--no-column` without options are equivalent to *always* and *never* respectively.
This option is only applicable when listing tags without annotation lines.
`--contains []`
: Only list tags which contain the specified commit (HEAD if not specified). Implies `--list`.
`--no-contains []`
: Only list tags which don’t contain the specified commit (HEAD if not specified). Implies `--list`.
`--merged []`
: Only list tags whose commits are reachable from the specified commit (`HEAD` if not specified), incompatible with `--no-merged`.
`--no-merged []`
: Only list tags whose commits are not reachable from the specified commit (`HEAD` if not specified), incompatible with `--merged`.
`--points-at