1. Create
- lightweight tag
$ git tag v0.1
- annotated tag
$ git tag -a v0.1 -m "my first version"
- tag to a specific commit
$ git tag -a v0.1 4ba28bf
2. Query
- list all tags
$ git tag ether_sysml.v0.4 ether_sysml_broadcast_unicast_ether.v0.1 fcu_sysml.v1.0 fcu_sysml.v1.1 uav_swarm_sysml.v1.0 uav_swarm_sysml.v1.0.3
- list all tags with annotations
$ git tag -n99
or
$ git tag -n -l
- search with patterns
$ git tag -l "ether*"
ether_sysml.v0.4 ether_sysml_broadcast_unicast_ether.v0.1
- show details of a tag
$ git show ether_sysml.v0.4
tag ether_sysml.v0.4
Tagger: Kangfeng Ye <kangfeng.ye@york.ac.uk>
Date: Tue Apr 11 20:29:32 2017 +0100
the first version to have Ether with two Ends and create a test project successfully
commit 4ba28bf7e23e091e4d3768814e23204075f66b4c
...
- sort by creation date
$ git for-each-ref --format '%(refname) %09 %(taggerdate) %(subject) %(taggeremail)' refs/tags --sort=taggerdate
refs/tags/fcu_sysml.v1.0 Wed Mar 15 14:31:32 2017 +0000 V1.0 of FCU test model <kangfeng.ye@york.ac.uk>
refs/tags/fcu_sysml.v1.1 Thu Mar 16 12:55:34 2017 +0000 Update SysML by changing float to double <kangfeng.ye@york.ac.uk>
refs/tags/uav_swarm_sysml.v1.0 Thu Mar 16 16:07:36 2017 +0000 SysML test model for UAV Swarm <kangfeng.ye@york.ac.uk>
refs/tags/uav_swarm_sysml.v1.0.3 Mon Mar 20 18:11:20 2017 +0000 Correct constant from 2.2 to 1.2 <kangfeng.ye@york.ac.uk>
refs/tags/ether_sysml_broadcast_unicast_ether.v0.1 Tue Apr 4 18:52:35 2017 +0100 This is a tag for the temporary version to us <kangfeng.ye@york.ac.uk>
refs/tags/ether_sysml.v0.4 Tue Apr 11 20:29:32 2017 +0100 the first version to <kangfeng.ye@york.ac.uk>
3. Push tags to remote repositories
- a specific tag
$ git push origin v0.1
- all tags
$ git push origin --tags
4. Checkout tags
- checkout a tag into a new local branch
git checkout -b bv0.1 v0.1
Reference: