[应用笔记]Git Tag常用命令
我们常常需要给我们的git代码提交打上标签,以表示各个发行或调试的版本或里程碑。在本帖子,我收集了git有关tag的常用命令,如如何新建tag,删除tag,同步tag等
显示tag
显示出本代码仓库的当前本地已经有的tag标签
# 显示当前本地全部的tag标签 git tag # 使用通配符来筛选 git tag -l "v1.8.*"
注意:如果使用通配符,则一定要使用 -l 选择
新建tag
Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)。
我看git的官方解释是一个前者简单,而后者保存的内容多,且支持GPG。具体详细内容与意义,大家自行查找吧!
附注标签
运行tag 命令时指定 -a 选项
# 简单添加附注标签 $ git tag -a v1.4 -m "EEPW version-1.4" # 后期添加附注标签 $ git tag -a v1.2 9fceb02 -m "EEPW version-1.2"
轻量标签
创建轻量标签,不使用 -a、-s 或 -m 选项,只需要提供标签名字,这时没有保存其它任何信息:
$ git tag v1.4-lw
我个人觉得这个应用其实也不大。差不了多少,而且我还愿意添加些注释。
同步标签
默认情况下,git push 命令并不会传送标签到远程仓库服务器上。在创建完标签后你必须显式地推送标签到共享服务器上。
# 推送单个git tag标签 $ git push origin v1.5 # 将本地尚未推送的标签一并推送 $ git push origin --tags
删除标签
使用下面的命令删除本地的标签
# 删除本地tag $ git tag -d v1.4-lw # 删除远程仓库中的标签 $ git push origin :refs/tags/v1.4-lw $ git push origin --delete <tagname>
检出标签(checkout tag)
如果想拉下来某个git commit id节点的代码版本,则直接使用git checkout命令。但我推荐大家直接在检出时新建分支,这样就规避了代码“分离头指针(detached HEAD)”问题
# 存在detached HEAD issue $ git checkout 2.0.0 # 拉取代码后,新建分支 $ git checkout -b version2 v2.0.0 Switched to a new branch 'version2'