0
点赞
收藏
分享

微信扫一扫

跟廖雪峰学习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>​​可以删除一个远程标签。


举报

相关推荐

0 条评论