Show which git tag you are on?
I’m having trouble finding out which tag is currently checked out.
When I do:
git checkout tag1 git branch
I can’t seem to find out which tag I’m on. It only logs:
* (no branch) master
Is it possible to find out which tags are checked out? In the above example, this would be
6 Solutions collect form web for “Show which git tag you are on?”
Edit: Jakub Narębski has more git-fu. The following much simpler command works perfectly:
git describe --tags
(Or without the
--tags if you have checked out an annotated tag. My tag is lightweight, so I need the –tags.)
original answer follows:
git describe --exact-match --tags $(git log -n1 --pretty='%h')
Someone with more git-fu may have a more elegant solution…
This leverages the fact that
git-log reports the log starting from what you’ve checked out.
%h prints the abbreviated hash. Then
git describe --exact-match --tags finds the tag (lightweight or annotated) that exactly matches that commit.
$() syntax above assumes you’re using bash or similar.
When you check out a tag, you have what’s called a “detached head”. Normally, Git’s HEAD commit is a pointer to the branch that you currently have checked out. However, if you check out something other than a local branch (a tag or a remote branch, for example) you have a “detached head” — you’re not really on any branch. You should not make any commits while on a detached head.
It’s okay to check out a tag if you don’t want to make any edits. If you’re just examining the contents of files, or you want to build your project from a tag, it’s okay to
git checkout my_tag and work with the files, as long as you don’t make any commits. If you want to start modifying files, you should create a branch based on the tag:
$ git checkout -b my_tag_branch my_tag
will create a new branch called
my_tag_branch starting from
my_tag. It’s safe to commit changes on this branch.
git describe is a porcelain command, which you should avoid:
Instead, I used:
git name-rev --tags --name-only $(git rev-parse HEAD)
This worked for me
git describe --tags --abbrev=0
Show all tags on current HEAD (or commit)
git tag --points-at HEAD
git log --decorate
This will tell you what refs are pointing to the currently checked out commit.