git tag操作

103 阅读2分钟

亲测

## 打tag
git tag -a xxx-v1.0 -m 'version 1.0’

## tag推到远程仓库
git push origin xxx-0.1    push指定tag 
git push origin --tags   push所有tag

## 获取远程tag
git fetch origin tag V1.2


## 删除远程tag
1、先删除本地tag
git tag -d ccb-streaming-plugin-v0.1.0.0
2、再推送到远程tag
git push origin :refs/tags/ccb-streaming-plugin-v0.1.0.0

tag 是 Git 版本库的一个快照,指向某个 commit 的指针。

使用 tag 标记发布版本。Git 提供了 tag 的增删改查的一系列操作,在 tag 的使用上,可谓非常之方便。

tag 和 branch 有点相似。但是它们的指责分工和本质都是不同的。tag 对应某次 commit 是一个点,是不可移动的。

branch 对应一系列 commit,是很多点连成的一根线,有一个 HEAD 指针,是可以依靠 HEAD 指针移动的。

所以,两者的区别决定了使用方式,改动代码用 branch,不该动只查看用 tag

tag 和 branch 相互配合使用,有时候可以起到非常方便的效果,例如已经发布了 v1.0v2.0 和 v3.0 三个版本。这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch,然后作为开发分支。

查看标签

# 查看所有标签
git tag
# 查看符合条件的标签
git tag -l <tag>
# 示例:查看标签名开头为v1.的标签
git tag -l v1.*
# 查看标签信息
git show <tag-name>
# 展示当前分支的最近标签
git describe --tags --abbrev=0

新建标签

⚠️ 注意标签无法重命名,需谨慎操作

在当前提交新建标签(默认打在最近一次提交记录上)

# 语法
git tag <tag-name>
# 示例
git tag v1.0.0

在指定提交中新建标签

# 语法
git tag <tag-name> <commit-id>
# 示例
git tag v1.0.0 f1bb97a

新建分支指向标签

# 语法
git checkout -b <branch-name> <tag-name>
# 示例
git checkout -b branchA v1.0.0

删除标签

# 删除本地标签
git tag -d <tag-name>
# 删除远程标签
git push --delete origin <tag-name>

推送标签

首先要保证本地创建好了标签才可以推送标签到远程仓库。

推送指定标签:

# 语法
git push <remote> <tag-name>
# 示例
git push
# 推送本地所有标签到远程
git push <remote> --tags
# 示例
git push origin --tags

拉取标签

拉取远程指定标签

git fetch origin