打赏

git tag介绍

我们常常在代码发版时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的。

 

git的tag功能
git 下打标签其实有2种情况

轻量级的:它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用
带附注的:实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证,电子邮件地址和日期,一般我们都建议使用含附注型的标签,以便保留相关信息
所以我们推荐使用第二种标签形式

一、创建tag

创建本地标签
1、创建轻量标签
轻量标签指向一个发行版的分支,其只是一个像某commit的引用,不存储名称时间戳及标签说明等信息。定义方法如下

 git tag <版本号>-light

 

2、创建带附注标签
相对于轻量标签,附注标签是一个独立的标签对象,包含了名称时间戳以及标签备注等信息,同时指向对应的commit。定义方法如下

git tag -a <版本号> -m "<备注信息>"

 

3、

同时我们也可以像特定的commit添加标签,使用该commit对应的SHA值即可

git tag -a <版本号> <SHA值> -m "<备注信息>"

比如 git tag -a 1.0.0 0c3b62d -m "Release Edition v1.0.0" 就是为SHA为0c3b62d的这次提交打了1.0发行版的tag

 

二、推送标签

推送所有标签
git push origin --tags

推送指定版本的标签
git push origin <版本号>

 

三、查看tag

1、查看所有的tag
git tag
要显示附注信息,我们需要用 show 指令来查看

 

2、查看某个tag

git show tag版本号

比如:git show V1.2

扩展:
查看分支
1、查看所有分支 git branch -a 2、查看远程分支[分支、tag ] git ls-remote

 

 

四、删除tag

删除git tag分支

1、批量删除本地tag
git tag | xargs -I {} git tag -d {}

2、批量删除远程tag
git tag | xargs -I {} git push origin :refs/tags/{}

命令说明
grep -v -E 排除master 和 dev

-v 排除
-E 使用正则表达式

xargs 将前面的值作为参数传入 git branch -D 后面

-I {} 使用占位符 来构造 后面的命令

 

扩展:

删除git分支

1、批量删除本地分支
git branch -a | grep -v -E 'master|dev' | xargs git branch -D

2、批量删除远程分支
git branch -r| grep -v -E 'master|dev' | sed 's/origin\///g' | xargs -I {} git push origin :{}

如果有些分支无法删除,是因为远程分支的缓存问题,可以使用git remote prune

 

posted @ 2019-06-17 17:15  芹溪  阅读(8199)  评论(0编辑  收藏  举报