当我跑步时git ls-remote
在工作树中,该命令输出原始存储库中的修订列表。由于某种原因,我对每个标签进行了 2 个修订,对于同一标签的第二个修订,标签名称包括^{}
git ls-remote
From [email protected]:andris9/zzzzzz.git
d69e66d7c915b9682618b7f304b80cc0ae4c7809 HEAD
....
bb944682f7f65272137de74ed18605e49257356c refs/tags/v0.1.6
771a930dc0ba86769d6862bc4dc100acc50170fa refs/tags/v0.1.6^{}
a72251d945353a360087eb78ee75287c38a1c0e6 refs/tags/v0.1.7
d69e66d7c915b9682618b7f304b80cc0ae4c7809 refs/tags/v0.1.7^{}
我创建标签
git tag -a v0.1.8 -m "tag message"
git push --tags
从例子来看git-ls-remote
man page没有这样的重复标签,所以也许我做错了什么?
有 2 种类型的标签:
-
轻的- 只是指向某个对象的引用(例如提交)。
-
带注释的- 一个单独的 git 对象本身,并存储更多信息,如作者、提交者、提交消息等。
当你使用git tag -a
要创建标签,git 会为您创建一个带注释的标签。
The ^{}
是用于取消引用标签的语法。它描述于git 修订版.
The refs/tags/v0.1.6
存储库中的 ref 指向标签对象bb944682f7f65272137de74ed18605e49257356c
,这又指向771a930dc0ba86769d6862bc4dc100acc50170fa
(非标签对象)我猜测它是在创建标签时存储提交信息。
所以当你这样做时refs/tags/v0.1.6^{}
,git 将取消引用该标签并将其解析为771a930dc0ba86769d6862bc4dc100acc50170fa
- 非标签对象。
还有一个git show-ref命令可用于仅列出标签,并可选择取消引用,如下所示,并且在您的情况下应产生以下输出:
$ git show-ref --tags
bb944682f7f65272137de74ed18605e49257356c refs/tags/v0.1.6
a72251d945353a360087eb78ee75287c38a1c0e6 refs/tags/v0.1.7
$ git show-ref --tags --dereference
bb944682f7f65272137de74ed18605e49257356c refs/tags/v0.1.6
771a930dc0ba86769d6862bc4dc100acc50170fa refs/tags/v0.1.6^{}
a72251d945353a360087eb78ee75287c38a1c0e6 refs/tags/v0.1.7
d69e66d7c915b9682618b7f304b80cc0ae4c7809 refs/tags/v0.1.7^{}
要确认这一点,您可以使用git show命令为您提供有关 git 对象的更多详细信息。
这是来自我的测试 git 存储库之一的信息。
$ git show 43f9a98886ba873c0468c608f24c408b9991414f
tag v0.1
Tagger: Ash <tuxdude@OptimusPrime>
Date: Sun Jul 15 00:14:43 2012 -0700
Tagging Stable repo 0.1 :)
-----BEGIN PGP SIGNATURE-----
<PGP-SIGNATURE>
-----END PGP SIGNATURE-----
commit e55df25f2321a6b2c9a02fa80ccba7cbe3c38c08
Merge: 796efcd 58e3a4d
Author: Ash <tuxdude@OptimusPrime>
Date: Sun Jul 15 00:02:44 2012 -0700
Merge branch 'dev' into 'master' for stable 0.1.
$ git show e55df25f2321a6b2c9a02fa80ccba7cbe3c38c08
commit e55df25f2321a6b2c9a02fa80ccba7cbe3c38c08
Merge: 796efcd 58e3a4d
Author: Ash <tuxdude@OptimusPrime>
Date: Sun Jul 15 00:02:44 2012 -0700
Merge branch 'dev' into 'master' for stable 0.1.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)