so the git tag
command lists the current git tags
tag1
tag2
git tag -n
prints tag's message
tag1 blah blah
tag2 blah blah
What's the best way to get the hash of tag1 & tag2 ?
To get git tags with the SHA1 hash of the Tag object, you can run:
git show-ref --tags
The output will then look something like:
0e76920bea4381cfc676825f3143fdd5fcf8c21f refs/tags/1.0.0
5ce9639ead3a54bd1cc062963804e5bcfcfe1e83 refs/tags/1.1.0
591eceaf92f99f69ea402c4ca639605e60963ee6 refs/tags/1.2.0
40414f41d0fb89f7a0d2f17736a906943c05acc9 refs/tags/1.3.0
Each line is the SHA1 hash of the tag, followed by the tag name prefixed with refs/tags/
.
If you want the SHA1 hash of the commit, instead of the tag object, you can run:
git show-ref --tags -d
This will produce output like:
0e76920bea4381cfc676825f3143fdd5fcf8c21f refs/tags/1.0.0
3e233dd8080617685992dc6346f739a6f6396aae refs/tags/1.0.0^{}
5ce9639ead3a54bd1cc062963804e5bcfcfe1e83 refs/tags/1.1.0
09173980152a7ed63d455829553448ece76c6fdc refs/tags/1.1.0^{}
591eceaf92f99f69ea402c4ca639605e60963ee6 refs/tags/1.2.0
56d803caaa8a93a040b7be0b8a36abdc4ce8c509 refs/tags/1.2.0^{}
40414f41d0fb89f7a0d2f17736a906943c05acc9 refs/tags/1.3.0
1bdf628a70fda7a0d840c52f3abce54b1c6b0130 refs/tags/1.3.0^{}
The lines ending with ^{}
start with the SHA1 hash of the actual commit that the tag points to.