git笔记:通过给grunt-inline打tag看tag操作

时间:2022-05-15 04:42:35

晚上review了下grunt-inline的issues,看到有个兄弟pull request,修正了0.3.0版本的一个bug。于是就merge了下,然后发布了0.3.1版本(这里)。

npm publish后,突然想到一个问题,发布了这么多个版本了,但好像都没有打过tag,这个不利于版本回溯以及bug trace。svn版本管理里有tag的概念,git里八九不离十也有,虽然还没用过。就简单百度了下,打完tag后顺便做下笔记:

查看tag

git tag

比如我在grunt-inline的项目下运行这个命令,输出如下

casperchenMacBookPro:grunt-inline casperchen$ git tag
0.3.0
0.3.1
v0.3.0

添加tag

tag分为两种,分别是轻量级(lighted)tag和附注(annotated)标签。我们通常采用后面这一种。

1. 根据最新版本创建tag

比如merge了PR后,想要给最新的版本0.3.1打个tag,可用如下命令

 git tag -a v0.3.1 -m '版本0.3.1的tag'

几个参数简单解释下

-a annotated的意思,标识tag的类型
v0.3.1 tag版本
-m 注释信息

2. 根据特定版本创建tag

有的时候,我们想要给历史版本打tag。比如给grunt-inline打完0.3.1的tag后,我想顺道给之前的0.3.0版本打个tag。该怎么做呢。

首先需要知道该提交版本的校验和,可以通过git log获得。比如我们运行git log后,输出如下信息

commit 96770ddb62efc6ac58d4c71da0f346867f1e24de
Author: chyingp <chyingp@gmail.com>
Date: Sun Jun 15 21:25:36 2014 +0800 update README and package.json after merge a PR

然后,可以针对该次提交打tag

git tag -a v0.3.0 96770ddb62efc6ac58d4c71da0f346867f1e24de -m '版本0.3.0的tag'

删除tag

命令很简单,加上-d参数即可

git tag -d v0.3.1

发布tag

默认情况下,git push的时候,不会把本地打的tag也提交到git hub,需要手动推送。

1. 发布所有tag

git push origin –tags

2. 发布特定tag

it push origin v0.3.1