添加 tag
git tag your_tag_name
git tag -a your_tag_name -m "tag describe"
列出所有 tag
git tag
git describe --tags
删除本地 tag
git tag --delete your_tag_name
删除远程 tag
你可以向远程仓库推送一个空引用的同名tag:
git push origin :your_tag_name
或者更具体一点的方式, 是使用--delete
选项(如果你使用的git版本低于1.8.0使用-d
代替):
git push --delete origin your_tag_name
需要注意的是, Git有标签(tag)命名空间和分支(branch)命名空间,所以你可能存在标签名和分支名同名的情况,如果你想明确删除的是指定名称的标签,而不想误删分支的话,可以在执行标签删除时指定完全限定的ref:
git push origin :refs/tags/your_tag_name
note
当你推送一个分支(branch)、标签(tag)、或者其他ref到远程仓库时,都涉及到需要指定"哪个仓库(repo),源是什么(source),推送到哪儿(destination)"
git push remote-repo source-ref:destination-ref
一个真实环境的例子是推送你本地的master分支到远程的master分支:
git push origin refs/heads/master:refs/heads/maser
因为有默认路径,所以上面的可以简写成:
git push origin master:master
标签(tags)的工作方式是一样的:
git push origin refs/tags/release-1.0:refs/tags/release-1.0
可以简写成:
git push origin release-1.0:release-1.0
上面删除标签的命令(git push origin :your_tag_name
)省略了源引用(source ref),相当于推送一个空(nothing)到目的地(destination), 也就相当于在远程仓库删除了标签的ref。
切换标签
git checkout tags/<tag_name> -b <branch_name>
获取所有标签
git fetch --all --tags --prune
推送标签到远程仓库
git push --tags