《Git tags Explained》翻译

原文链接

Git tags 简明教程

git-tags

Git对于开发者来说是个非常必要的工具,它能非常方便的维护多人共享的代码库

Git-scm简单的定义:

Git是一个开源的分布式版本控制系统,设计用来快速有效的管理各种小项目和大项目

如果你还不知道Git,我推荐你首先学习一些基础知识

在这篇文章中,我们将学习到什么是git tag,为什么要使用它和什么时候以及怎么使用它。这因该足够让你在你的项目使用它了

让我们开始吧

什么是git tag

git tag实际上是指向了Git history 中的一个commit,它可以标记git history中某个的commit,以后可以方便的找到它

你可以将 tag 看做是一个不变的分支

Tag 代表某个特定分支在一定时刻的版本。所以,tag 本质上是开发者在程序中做的一个标记

为什么和什么时候使用git tag

你肯定看到过v1.0.0这样的标记。它表示一个产品的版本号。通常,当产品有重大的更新并且需要推送给用户时,就会创建一个tag。

tag 通常用户标记一个里程碑,例如可以发布给用户或者企业的新功能或一些bug修复

你肯定不希望每次修复Bug都要推送给客户,Tag 可以确保用户使用的是某个特定时刻的版本,而不需要每次代码的新提交都推送给客户。

怎么使用git tag

现在你已经知道了tag的应用场景,下面就开始看看怎么使用它

创建tag

git tag <tag_name>
// Eg. git tag v1.0.1

这条命令会将最新的commit打上tag,tag_name就是你要起得tag 名字,通常是类似v1.0.1这种。当然你也可以命名任何你喜欢的名字

通常 tag name 是:

v<major>.<minor>.<patch>
  • major:重大修改
  • minor: 版本与先前版本兼容
  • patch: bug 修复

创建了tag之后,可以push到远端代码库

git push --tags

也可以为tag添加描述信息

git tag -a <tag_name> -m "message"

-a是什么意思呢?下面来看看

tag类型

一共有两种tag类型:

  • 附注标签(Annonated)
  • 轻量标签(Lightweight)
附注标签

附注标签存储一个额外的信息,比如作者、发行说明、tag 信息存储为Git仓库中完整的数据,这些数据对于一个公开的项目是非常重要的

-a表示该tag是附注标签

git tag -a v1.0.1 -m "First release"
轻量标签

轻量标签时最简单的打tag的方式,它只存储tag name和关联的commit的hash值,不包含额外的信息,就类似于一个书签

git tag v2.1-lw

lw表示轻量级标签,在tag name中加lw是为了更好的可读性

为一个特殊的commit打tag

git tag <tag_name> <commit_sha>

上面的命令可以让你为一些老的commit打tag

查看所有tag

git tag

这条命令将会展示所有存在的tag

输出可能是这样:

1.0.0
1.0.1
1.0.2
1.0.3
2.0.0
2.1.0

你可以使用-l或者--list选项利用正则表达式进行过滤

git tag -l "1.0*"

结果:

1.0.0
1.0.1
1.0.2

查看tag信息

git show <tag_name>
// Eg. git show v1.0.1

将会展示作者、tag 信息、commit信息等其他信息

删除tag

git tag -d <tag_name>

推送tag

git push origin <branch> --tags

将会把本地tag推送到远程仓库

拉取tag

git fetch --tags

将会把远程仓库tag拉取到本地

切换tag

git checkout <tag_name>
// Eg. git checkout v1.0.1

你可以用这条命名,将代码回退到打某个tag的时候

你现在已经掌握了Git tag,开始在你的项目中应用起来吧😁

更多学习资源:


   转载规则


《《Git tags Explained》翻译》 KaKa 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录