一、tag简介
tag是git版本库的一个标记,指向某个commit的指针。
tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 ,v.1.0.2 …这样的标签。
tag感觉跟branch有点相似,但是本质上和分工上是不同:
tag对应某次commit,是一个点,是不可移动的。
branch 对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。
所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。
tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支。
二、tag使用命令
1、列出所有tag
git tag //默认显示 git tag -l git tag -n //查看所有tag和说明 git tag -l v1.* //查看匹配到的tag git ls-remote --tags origin //查看远程所有tag
2、查看tag信息
git show v1.0.1 //查看v1.0.1的内容
3、创建tag
git tag v2.0 git push origin //远程tag的创建
4、创建带注释tag
git tag -a v2.1 -m '第二版本' -m 后跟的是注释信息, 当使用git show v2.1的时候, 会显示这个注释信息 git push origin //远程tag的创建
5、推送tag
git push origin [tagname] //推送到远程仓库 git push origin --tags //推送所有tag到远程仓库
6、特定commit_id创建tag
git log --pretty=oneline //查看当前分支的提交历史 里面包含 commit_id git tag -a
7、删除tag
git tag -d //方式一 git tag -d [tagname] //方式二 git push origin :refs/tags/v1.0.2 //方式一:远程tag的删除 git push origin --delete//方式二:远程tag的删除
8、检出tag
git checkout -b //因为 tag 本身指向的就是一个 commit,所以和根据commit id 检出分支是一个道理。 //但是需要特别说明的是,如果我们想要修改 tag检出代码分支,那么虽然分支中的代码改变了,但是 tag标记的 commit还是同一个,标记的代码是不会变的,这个要格外的注意 git checkout -b branch_name tag_name //新建分支检出 //注意不要在检出标签后做修改和提交,会出现不必要的麻烦。正确的做法应该是创建一个新的分支,在新的分支上做修改和提交。
9、切换tag
git checkout [tagname] //切换到指定tag
10、为之前提交的添加tag
git log --pretty=oneline --abbrev-commit //第一步:找到提记录 git tag -a v3.1 [指定标签名] [commitID] //第二步:为记录创建tag //git tag -a "v1.0.2" 9fbc3d0
11、重命名tag
//1.强制替换,再删除原有 git tag -fgit tag -d //2.删除原有tag,重新添加 git tag -d git tag -a -m"information"
就问你学废了吗?