做博客网站需要工具吗,建个网站做网络推广要花多少钱,5118站长工具,wordpress欢迎页Git教程 版本标签#xff08;tag#xff09; 1️⃣ 创建标签2️⃣ 查看存在的标签3️⃣ 标签的散列值4️⃣ 将标签添加到日志输出中5️⃣ 判断tag是否包含特定的提交#x1f33e; 总结 大多数项目都是用 1.7.3.2和 “ gingerbread” 这样的数字或名称来标识软件版本的。在 … Git教程 · 版本标签tag 1️⃣ 创建标签2️⃣ 查看存在的标签3️⃣ 标签的散列值4️⃣ 将标签添加到日志输出中5️⃣ 判断tag是否包含特定的提交 总结 大多数项目都是用 1.7.3.2和 “ gingerbread” 这样的数字或名称来标识软件版本的。在 Git 中我们可以用标签 (tag) 来做这件事。 1️⃣ 创建标签 标签化某次提交 创建一个普通的标签 在下面的例子中我们会为 master 分支上的当前版本创建一个名为 1.2.3.4 的标签并 将其注释为“Freshly built.”。 git tag 1.2.3.4 master -m Freshly built. 推送某单一标签 推送操作通常不会自动传送标签。但如果我们明确指定了某个标签名该标签就可以 被传送了。 git push origin 1.2.3.4另外使用带 -tags 参数的 push 命令也可以用来推送被传送分支的标签。 git push --tags如果我们在这里使用了 GnuPG ( 即Gnu Privacy Guard简称GnuPG 或 GPG, 是一种公私密钥加密方式。用户可通过某种数字证书生成一对公私密钥以此来确保数据的安全传输) , 可以通过-s 参数来提供该标签所带的数字签名。当然这个前提是我们已经在 Git 中输入了默认 EMail 地址而该地址同时也是注册 GnuPG 时所用的用户ID。 git tag 1.2.3.4 master -s -m Signed.请注意! 如果你创建标签时使用了 -m 、-a 、-s 或 -u 这些参数Git 会将在版本库中将标签 作为一个独立对象来创建。该对象中会包含相关用户以及创建时间等信息。而要是如果没有使用这些选项Git 就只会创建一个所谓的轻量级标签其中只有用于识别的提交散列值。 2️⃣ 查看存在的标签
如果我们不带任何参数地调用 tag 命令就会列出当前所有的标签。这可能会是一个长长的清单。对此我们可以通过 -l 参数使用像 1.2.* 这样的表达模式来减少输出。 git tag -l 1.2.*
1.2.0.0 Beginning.
1.2.3.3 New build.
1.2.3.4 Recently built.3️⃣ 标签的散列值
我们可以通过带 --tags 参数的 show-ref 命令来列出标签对象的提交散列值。另外你也可以通过 -dereference 参数同时打印出其相应提交对象的散列值它们将会被打上 ^{} 标记。 git show-ref --dereference --tags
...
f63cd7181787c9973788a97648796468cec474aa refs/tags/1.2.3.3
cef89bbd712laac3cc38fe3a342045c9401bd6b9 refs/tags/1.2.3.3^{}
4a0228bdd0ab5e0180422c82bf706c42671a8laf refs/tags/1.2.3.4
cef89bbd712laac3cc38fe3a342045c9401bd6b9 refs/tags/1.2.3.4^{}4️⃣ 将标签添加到日志输出中
我们可以使用带 -decorate 参数的 log 命令标签与各提交的分支。 git log --oneline --decorate
cef89bb (HEAD, tag: 1.2.3.4) Again, everything rebuilt.
9d4caed Merge branch Other.
dcd1c6c Changed.
ccela68 (tag:1.2.3.3)Something changed 5️⃣ 判断tag是否包含特定的提交
我们常常会面临一个问题就是要判断某一特定的功能或 bug 修复是否被包含在客户所安装的那个版本中。如果其对应的提交是已知的问题显然很容易回答。用带 -contains 参数的 tag 命令就可以列出历史记录中包含该提交的所有标签。 git tag --contains f63cd71
1.2.3.3
1.2.3.4请注意! 如果有一些提交曾经被复制过就有可能会对上述结果产生误导。例如如果 这些版本是通过捡取操作被放在一起的要想找出特定修改是否包括在内就非常麻烦了。对此我们可以用 log 命令时在特定标签后面加上对注释内容的搜索。 git log --oneline 1.2.3.3 | grep a comment.但这也只有在我们所添加的注释中包含了能用于识别修改的信息时才行得通这需要我们往其中添加有意义的注释或者 bug 跟踪管理系统中的ID 。另外这也是我们应该避免复制提交的重要理由之一。
注意如果我们需要一个可移动的标志比如用来标识区分当前生产环境中已上线/未上线的状态那么应当使用一个分支而不是标签。 总结
创建标签即用 tag 命令来创建标签。推送push 命令可以只用来传送那些被明确指定的标签例如这样 git push origin 1.2.3.4, 当然如果我们使用了-tags 参数就不用指定标签了。拉回与获取pull和 fetch 这两个命令都会自动获取其所涉及分支中的所有标签除非我们在命令中使用了--no-tags 参数。显示所有标签这件事可以通过 git tag -l 命令来完成。在日记中显示标签我们可以使用 git log-decorate 命令。共享标签中的提交如果想要知道某一标签中是否包含了某一提交我们可以用带 -contains 参数的 tag 命令。 ⏪ 温习回顾上一篇点击跳转 《【Git教程】八版本库间的交换 —— 版本库的克隆与命名分支监控、命名、拉取及推送 ~》 ⏩ 继续阅读下一篇点击跳转 《【Git教程】十版本库之间的依赖 —— 项目与子模块之间的依赖、与子树之间的依赖 ~》