git tag

2019-11-19  本文已影响0人  跑马溜溜的球

1. tag是什么

如果用过svn,你一定对tag不陌生。通常版本上线前,我们会对相应的代码打一个tag,将其封存起来,就如同一个代码快照。

2. 常用操作

2.1 创建tag

git tag -a <tag名称> <commit hash> -m <备注信息>

例:

git tag v6.2.1 6b2d5ffc -m "皮肤盒子"

commit hash不写,则默认对最后一次commit打tag
比如:

git tag v6.2.2 -m "tag测试"    

2.2 列出所有tag

git tag

例:

git tag
1.0
2.0
v6.2.1
v6.2.2

使用-l参数可以进行前缀模糊匹配

git tag -l v6*
v6.2.1
v6.2.2

2.3 查看单个tag详情

git show <tag名>

例:

git show v6.2.1

tag v6.2.1
Tagger: ball
Date:   Fri Nov 15 14:37:05 2019 +0800

皮肤盒子

commit 6b2d5ffcf188314fb4a60373510b8bfcefdde67a
Author: ball
Date:   Fri Jan 25 17:06:08 2019 +0800

    bug fix

diff --git a/br.txt b/br.txt
deleted file mode 100644
index b23a6f5..0000000
--- a/br.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-add a line
-ad
diff --git a/br2.txt b/br2.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/br3.txt b/br3.txt
deleted file mode 100644
index e69de29..0000000

2.4 删除tag

git -d <tag名>

2.5 推送/获取tag

向仓库推送所有tag

git push origin --tags

向仓库推送指定tag

git push origin <tag名>

只要执行git pull就会获取所有tag

3. 常见问题

如何切换到相应的tag上,进行文件操作?

git checkout <tag名>

例:

git checkout v6.2.1
HEAD 目前位于 6b2d5ff... fix

此时执行git status可以看到如下结果

git status
头指针分离于 v6.2.1

说明我们目前不处于任何分支,而是位于tag中。

是否可以修改tag中的内容?

可以。切换到相应tag上,你就可以如同在一个分支上那样修改,提前其内容。
但是实践中不建议修改,那样就失去了tag的意义。

tag的本质是什么?

tag本质是git某次commit的快照,tag的名字方便你记住某次commit。换句话说,如果你能记住每个发布版本对应的commit hash,其实完全可以将某个commit id检出,以达到查看其当时代码情况的目的。但是这样做实在是太麻烦,所以,还是用tag吧。

上一篇下一篇

猜你喜欢

热点阅读