晚上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