Git Object: Tag

来源:互联网 发布:office mac 2016 编辑:程序博客网 时间:2024/05/16 12:47

Git Object: Tag

tag

A git tag can be used to give a name to a git commit . For example, when you finish beta for version 1.0, you might want to tag the current state as “1.0beta”. The tag includes:

  • The name of the tag (such as 1.0beta).
  • A commit that the tag refers to (such as 126af20). If you don’t specify a particular commit you want to tag, the most recent commit will be used.
  • A tag message (such as “This is 1.0beta“).
  • The tagger’s name, email address and the time the tag was added.

Example tag

Let’s use the example git object store as shown in the git commit section:

commit

When we last left off, we had done a git commit which created the second commit object (the orange oval in the upper right of the above diagram with hash 7fd2d16). To tag the current state of the repository, type:

$ git tag 1.0beta -m "This is 1.0beta"1.0beta

The -m allows you to add the text that goes along with the tag. You can see the details of a tag:

$ git cat-file -p 1.0betaobject 7fd2d163886aad0ebdb72b0df4d6cd7153653257type committag 1.0betatagger Tim Flagg <me@gitguys.com> Wed Feb 16 14:09:13 2011 -0800This is 1.0beta

To tag the very first commit that was done (the orange oval in the upper left with hash 126af20 listed under the orange oval), you can specify that commit as the last argument to git tag:

$ git tag -m "This is 1.0alpha" 1.0alpha 126af20

tagged

To get a list of tags:

$ git tag -l1.0alpha1.0beta

To check out the files that were tagged 1.0alpha:

$ git checkout 1.0alpha

and poke around to see what was at that point in time.

To get back to the files from the 1.0beta tag:

$ git checkout 1.0beta

Tags Are Fast

Adding a tag to a git commit is very fast and simple: A git tag object is added to the git object store and the tagging operation is finished.

Contrast this with adding a tag to legacy version control systems, which result in much more behind-the-scenes work while you wait.

Other flavors of git tags

The above type of tags (1.0alpha and 1.0beta) are the most common:

  • They are annotated (as opposed to lightweight)
  • They are unsigned (as opposed to GPG-signed).

lightweight tag is:

  • Not stored in the git object store the database.
  • Can’t be GPG-signed.

The gpg signature of a signed tag can be checked/verified by using the git tag -v command.

Next: What’s the deal with the Git Index?
Previous: The Git Commit Object

Related:

原创粉丝点击