<> preface
Recently used git To manage a project , After reaching a certain stage , Stable code needs to be released into a release , After searching the data, we found that git The tag operation just meets my requirements , So write it down , Convenient later is to use the search .
<> purpose
Tags can be marked for versions at a point in time , Commonly used for release , That's exactly what I need , Push local tags to Github A Release edition , Easy to download and view .
<> Label classification
git There are two types of tags : Lightweight label and note label . Lightweight tags are references to submitted objects , The annotation tag is an independent object in the warehouse , Note label is recommended , You can also view the label information in the future .
<> create label
*
Create lightweight labels
$ git tag v0.2.0 -light
explain : You do not need to pass parameters to create a lightweight label , You can specify the label name directly .
*
Create note label
$ git tag -a v0.1.0 -m "release 0.1.0 version"
explain : When creating a note label , parameter -a Namely annotated Abbreviation for , Specifies the label type , Signature of attached bid . parameter m Specify label description , The description information is saved in the label object .
<> View label
*
Lists all tags for the current warehouse
$ git tag
*
List tags that match the pattern
$ git tag -l 'v0.1.*'
*
View label version information
$ git show v0.1.0
<> Switch label
*
The switch label is the same as the switch branch command
$ git checkout [tagname]
explain : After switching the label, it is on an empty branch , Namely "You are in ‘detached HEAD’ state."
<> delete a tap
*
When the label is wrongly typed or needs to be modified , You need to delete the label first , New label
$ git tag -d v0.1.2
explain : parameter -d Namely delete Abbreviation for , To delete the label specified after it .
<> Make up label
*
For assigned commit Label
$ git tag -a v0.1.0 49e0cd22f6bd9510fe65084e023d9c4316b446a6
explain : Labeling is not necessary HEAD above , It can also be typed in the previous version , This requires that you know the checksums of a submitted object , adopt git log Command acquisition .
<> Release label
*
take v0.1.0 Label submitted to git The server
$ git push origin v0.1.0
explain : Usual git push Label objects are not submitted to git The server , We need to do something explicit .
*
Submit all local tags to git The server
$ git push origin --tags
Technology