跟廖雪峰学习git(9.0)

标签管理

发布一个版本时,通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Git的标签是版本库的快照,但其实它就是指向某个commit的指针。分支可以移动,标签不能移动,所以,创建和删除标签都是瞬间完成的。

tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

创建标签

首先,切换到需要打标签的分支上:

git checkout master

输出如下:

Switched to branch 'master'

git tag <name>就可以打一个新标签:

git tag v1.0

用命令git tag查看所有标签:

git tag

输出如下:

v1.0

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签之前应该打的标签没有打,怎么办?

方法是找到历史提交的commit id,然后打上就可以了:

git log --pretty=oneline --abbrev-commit

输出如下:

8ca4349 (HEAD -> master, tag: v1.0) commit readme
77f9ca7 (origin/master, dev) conflict fix
8cf7203 merge with no-ff
e18b34d add merge
1d26147 conflict fixed
5f74c5d & simple
ab01e68 AND simple
d03e35c branch test
ee37c08 wrote a readme.txt

比方说要对conflict fix这次提交打标签,它对应的commit id是77f9ca7,敲入命令:

git tag v0.9 77f9ca7

标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:

git show v0.9

可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

git tag -a v0.1 -m "version 0.1 released" 77f9ca7

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

小结

  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • 命令git tag可以查看所有标签。

操作标签

如果标签打错了,也可以删除:

git tag -d v0.1

输出如下:

Deleted tag 'v0.1' (was 23a7ce9)

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

如果要推送某个标签到远程,使用命令git push origin <tagname>

git push origin v1.0

或者,一次性推送全部尚未推送到远程的本地标签:

git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

git tag -d v0.9

然后从远程删除。删除命令也是push,格式如下:

git push origin :ref/tags/v0.9

小结

  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值