1. 查看 tag

git tag

该命令将列出所有已有的 tag,包括轻量级 tag 和附注 tag。

2. 创建 tag

创建轻量级 tag 非常简单,只需要在命令后面添加 tag 名称即可。

例如,可以使用以下命令来创建一个名为 v1.0 的轻量级 tag:

git tag v1.0

注意,轻量级 tag 只是一个指向特定提交的指针,它不包含任何额外的信息。

创建附注 tag 需要更多的信息,例如 tag 的作者、创建时间、注释等。可以使用以下命令来创建一个名为 v1.0 的附注 tag:

git tag -a v1.0 -m "Release version 1.0"

其中,-a 选项表示创建一个附注 tag,-m 选项用于添加注释信息。

3. 给指定 commit 打 tag

有时候,需要给指定的 commit 打 tag,而不是默认的 HEAD。

首先需要查看提交记录,找到想要打 tag 的那次 commit 的 id:

git log

该命令将列出所有的 commit 记录,其中包括 commit id、作者、提交时间、注释等信息。

如果需要查看某个文件的 commit 记录,可以使用以下命令:

git log <file-name>

该命令将列出指定文件的 commit 记录。

如果不关心那么多信息,可以加上 --pretty=oneline --abbrev-commit 参数来美化输出:

git log <file-name> --pretty=oneline --abbrev-commit

找到 commit id 后,使用以下命令来给指定 commit 打 tag:

git tag -a v1.0 <commit-id> -m "Release version 1.0"

其中,<commit-id> 表示指定的 commit id,-a 选项表示创建一个附注 tag,-m 选项用于添加注释信息。

4. 推送 tag

默认情况下,git push 命令不会将 tag 推送到远程仓库。如果需要推送 tag,需要使用以下命令:

git push origin <tag-name>

例如,要推送 v1.0 tag 到远程仓库,可以使用以下命令:

git push origin v1.0

如果需要一次性推送所有的 tag,可以使用以下命令:

git push --tags

5. 删除 tag

git tag -d <tag-name>

例如,要删除 v1.0 tag,可以使用以下命令:

git tag -d v1.0

注意,该命令只会删除本地仓库中的 tag。如果需要删除远程仓库中的 tag,还需要使用以下命令:

git push origin :refs/tags/<tag-name>

例如,要删除远程仓库中的 v1.0 tag,可以使用以下命令:

git push origin :refs/tags/v1.0