So far I have:
git rev-parse <tagname> | xargs git cat-file -p
but this isn't the easiest thing to parse. I was hoping for something similar to git-log
's --pretty
option so I could grab just the info I need.
Any ideas?
To fetch tags from your remote repository, use “git fetch” with the “–all” and the “–tags” options. Let's say for example that you have a tag named “v1. 0” that you want to check out in a branch named “release”. Using this command, you have successfully checked out the “v1.
Listing the available tags in Git is straightforward. Just type git tag (with optional -l or --list ). You can also search for tags that match a particular pattern. The command finds the most recent tag that is reachable from a commit.
View tags for a repository (console)In Repositories, choose the name of the repository where you want to view tags. In the navigation pane, choose Settings. Choose Repository tags.
A more direct way of getting the same info is:
git cat-file tag <tagname>
This uses a single command and avoids the pipe.
I used this in a bash script as follows:
if git rev-parse $TAG^{tag} -- &>/dev/null then # Annotated tag COMMIT=$(git rev-parse $TAG^{commit}) TAGGER=($(git cat-file tag $TAG | grep '^tagger')) N=${#TAGGER} # Number of fields DATE=${TAGGER[@]:$N-2:2} # Last two fields AUTHOR=${TAGGER[@]:1:$N-3} # Everything but the first and last two MESSAGE=$(git cat-file tag $TAG | tail -n+6) elif git rev-parse refs/tags/$TAG -- &>/dev/null then # Lightweight tag - just a commit, basically COMMIT=$(git rev-parse $TAG^{commit}) else echo "$TAG: not a tag" >&2 fi
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With