How do you 'mark' 'tag' or 'release' a particular set of revisions for a particular set of files so you can always pull that one later?
Using the git tag
command.
To simply "tag" the current revision, you would just run..
git tag -a thetagname
git tag -a 0.1
git tag -a 2.6.1-rc1 -m 'Released on 01/02/03'
To list the current tags, simply run git tag
with no arguments, or -l
(lower case L):
$ git tag -a thetagname # and enter a message, or use -m 'My tag annotation'
$ git tag -l thetagname
To delete a tag, you use the -d
flag:
$ git tag -d thetagname Deleted tag 'thetagname'
$ git tag [no output]
To tag a specific (previous) commit, you simply do..
git tag [tag name] [revision SHA1 hash]
For example:
git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b
Note: by default, git creates a "lightweight" tag (basically a reference to a specific revision). The "right" way is to use the -a
flag. This will launch your editor asking for a tag message (identical to asking for a commit message, you can also use the -m
flag to supply the tag message on the command line). Using an annotated tag creates an object with its own ID, date, tagger (author), and optionally a GPG signature (using the -s
tag). For further information on this, see this post
git tag mytagwithmsg -a -m 'This is a tag, with message'
And to list the tags with annotations, use the -n1
flag to show 1 line of each tag message (-n245
to show the first 245 lines of each annotation, and so on):
$ git tag -l -n1 mytagwithmsg This is a tag, with message
-----------------------------------------------------
Silence, the way to avoid many problems;
Smile, the way to solve many problems;