git的tag和branch
tag
tag是git版本的一个快照,指向某个commit的指针。一旦创建tag,则不会随着后续commit的变化而变化,是一个固定不变的版本。
在产品发布时,使用tag可以明确版本,对应的commit点是不可变更的。
和branch不同,branch是一系列commit,有一个HEAD指针不断变化移动。简单来说,如果修改代码就使用branch,如果不改动(例如发布)就使用tag。
tag使用
创建tag是基于本地分支的commit。但是需要注意的是,tag推送和分支推送是两件事,即使分支已经推送到远程服务器上,tag仍然没有推送,需要单独执行tag推送命令。
创建本地tag:
git tag <tagName>
将tag推送到远程仓库
git push origin <tagName>
如果有多个本地标签需要一次性推送可以使用如下命令:
git push origin --tags
查看当前分支的提交历史,包含commit id
git log --pretty=online
查看本地某个tag的详细信息
git show <tagName>
查看本地所有tag:
git tag
git tag -l
查看远程所有tag
git ls-remote --tags origin
删除本地tag
git tag -d <tagName>
删除远程tag:
git push origin :<tagName>
重命名tag本质上是删除掉旧tag然后再创建新tag
如果tag只存在本地,使用以下命令
git tag -d <oldTagName>
git tag <newTagName>
如果tag已经推送到远程,则不仅需要删除本地还需要删除远程的,然后再重新创建和推送
git tag -d <oldTagName>
git push origin :<oldTagName>
git tag <newTagName>
git push origin <newTagName>
检出标签
检出tag
git checkout <tagName>
注意:此时git会提示你处于一个 detached HEAD
状态,因为tag是快照,不能修改代码。
如果要在tag代码基础上做修改,需要检出这个tag并创建一个新的分支
-b <branchName>
git checkout -b <branchName> <tagName>
参考
Last updated
Was this helpful?