目录
一、tag标识一个commit
二、查看tag
三、对分支打tag
四、删除tag
五、根据某个tag来clone
一、tag标识一个commit
tag是用于去标记一个特定的commit。通常,在进行编译部署之前,我们需要对某一个即将release的版本进行tag,例如tag为release-v1.0。
tag基于某个commit来进行特定标识,生成一个带tag的类似branch,我们可以基于这个tag去生成新的分支,也可以根据tag切换到某个分支版本上,例如:
//生成新的branch,用tags/....去找tag
$ git checkout tags/<tag_name> -b <new_branch_name>
//比较:基于远程branch生成新分支,此语句直接可以将新分支进行set-upstream
$ git checkout origin/<remote_name> -b <new_branch_name>//切换commit
$ git checkout tags/version 1.0
不过上述基于tag来checkout的前提,是要保证本地仓库中你有tags 的信息,所以要先fetch这些tags才能做出上述checkout指令,否则报错!!
// --all will fetch all the remotes.
// --tags will fetch all tags as well
$ git fetch --all --tags --prune
二、查看tag
-
查看全部tags:
git tag
- 查看以某格式匹配到tag内容的所有tags
git tag --list 'v-*'
三、对分支打tag
打tag分为两种方式,一种是直接打tag,打一个简单的标签
git tag v1.0
一个是打带注释的tag(annotated tags),此时后面可以通过 -m ,像提交commit一样备注你的评论以及其他信息
git tag -a v1.0 -m "Product Release"
在本地完成tag标记后,需要push到远程
- 将所有tags push到远程
git push --tags
- 将所有annotated tags和相关commit推上去
git push --follow-tags
- 将特定tag推上去
git push origin <tag_name>
如果是想更新远程的tag,用--force
git push origin <tag_name> --force
四、删除tag
- 删除本地tag
git tag -d <tag_name>
- 删除远程tag【通过push更新】
//注意要标明 origin
git push --delete origin <tag_name>
五、根据某个tag来clone
git clone <url> --branch=<tag_name>