tag为标签,用来记录版本信息,是提交历史中某一个commit的快照。
branch为分支,有一个head指针,是可以依靠这个head指针来移动的。
一般在开发过程中,如果项目取得重大突破或者稳定可运行可上线等,会打上一个tag作为版本标记,相比于查看commit的hash值,我们可以用标签比较快的检索和识别。我们在开发新功能的时候,会创建一个branch,在branch中开发,开发完成之后再合入master。
tag的使用
查看tag
git tag
支持模糊搜索,如只对2.3.5.*系列感兴趣,则
git tag -l "2.3.5.*"
切换到指定tag
git clone整个仓库后,使用下面命令就可以取得指定tag的代码
git checkout tag_name
注意这时候git会提示你目前处于detached HEAD的状态,因为tag相当于一个快照,不能修改他的代码,如果想要在这个tag的代码基础上进行开发,则根据tag创建一个新的分支
git checkout -b branch_name tag_name
创建tag
git tag -a v1.0 -m "version 1.0"
查看tag
git show v1.0
共享tag
默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样——可以运行 git push origin [tagname]。
git push origin v1.0
如果想要一次性推送很多标签,也可以使用带有 --tags 选项的 git push 命令。 这将会把所有不在远程仓库服务器上的标签全部传送到那里。
git push origin --tags
删除tag
git tag -d v1.0