超级面板
文章目录
最新文章
最近更新
文章分类
标签列表
文章归档

Git tag - 打标签操作

Git 可以给仓库里的分支打上标签做标记,比如在代码发布后经常会打上V1.0V2.0 这样的标签,本文看一下这些打标签相关的操作。

本文中示例 $ 开头的表示执行的命令,其他内容为命令的输出。

创建标签

通过 git tag 即可很容易的创建标签:

为当前提交创建标签

git tag

示例:

$ git tag v1.0

使用 git log 也能看到打的标签。

$ git log

commit c5c2f2749577b998c4aff65663b40190dc4072a3 (HEAD -> master, tag: v1.0)
Author: tcatche <tcatche@example.com>
Date: Sat May 8 11:25:00 2021 +0800

Release v1.0

为历史提交创建标签

为历史提交创建标签,则在后面加上 commitHash 即可。

git tag

示例:

$ git tag v0.9

标签增加备注

使用 -m 可以为标签增加附属信息:

git tag -m “

$ git tag v2.5 -m "记录一些附属信息"
$ git show v2.5

# 输出
tag v2.5
Tagger: tcatche <tcatche@example.com>
Date: Sat May 8 13:25:50 2021 +0800

记录一些附属信息

commit 3ef7d58f0bd8dba7a5c7d4b899b17d9c9dda8ad2 (HEAD -> test, tag: v2.5, tag: v1.0)
Author: tcatche <tcatche@example.com>
Date: Sat May 8 11:18:26 2021 +0800

release 1.0

可以看到输出里多了打标签人、打标签的日期时间、记录的附注信息。

查看标签

查看当前代码库全部的标签

git tag

$ git tag

# 输出
v0.9
v1.0
v2.0

注意,标签是按字母排序而非提交日期或者标签创建日期排序。

使用通配符查看指定标签

如果代码仓库有很多标签,也可以使用通配符匹配符合指定格式的标签:

git tag -l “

$ git tag -l "v*.0"

# 输出
v1.0
v2.0

查看某个标签的详细信息

git show

$ git show v1.0

# 输出
commit 3ef7d58f0bd8dba7a5c7d4b899b17d9c9dda8ad2 (HEAD -> master, tag: v1.0)
Author: tcatche <tcatche@example.com>
Date: Sat May 8 11:18:26 2021 +0800

release 1.0

diff --git a/README.md b/README.md

标签推送到远程仓库

推送指定标签到远程仓库

git push origin

$ git push origin v1.0

# 输出
Counting objects: 1, done.
Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com/example.git
* [new tag] v1.0 -> v1.0

推送全部标签到远程仓库

可以把本地存在而远程仓库不存在的标签一次性推送到远程仓库。

git push origin –tags

$ git push origin --tags

# 输出
Counting objects: 1, done.
Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com/example.git
* [new tag] v0.9 -> v0.9
* [new tag] v1.0 -> v1.0
* [new tag] v2.0 -> v2.0

删除标签

删除本地标签

git tag -d

$ git tag -d v1.0

# 输出
Deleted tag 'v1.0' (was 3ef7d58)

删除远程仓库的标签

git push :refs/tags/
or
git push origin –delete

$ git push origin :refs/tags/v1.0

# 输出
To git@github.com/example.git
- [deleted] v1.0

代码切换到指定标签

使用 git checkout 命令,可以使代码回到指定的标签位置,但此时会处于 detached HEAD 状态:

git checkout

$ git checkout v1.0

# 输出
Note: switching to 'v1.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c <new-branch-name>

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 3ef7d58 release 1.0

如果需要更改时,通常需要创建一个新的分支:

git switch -c <branchName>

当然也可以在 checkout 的时候创建一个新分支:

git checkout -b

参考