When listing git-ls-remote why there's “^{}” after the tag name?
本问题已经有最佳答案,请猛点这里访问。
当我在工作树中运行
1 2 3 4 5 6 7 8 | 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^{} |
我用创建标签
1 2 | git tag -a v0.1.8 -m"tag message" git push --tags |
在
标签有2种类型-
当您使用
-
当与标签对象一起使用时,git会递归地取消引用标签,直到找到非标签对象为止。
-
与非标记对象一起使用时,它不执行任何操作,等效于跳过
^{}
存储库中的
因此,当您执行
还有一个
1 2 3 4 5 6 7 8 9 | $ 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存储库之一的信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $ 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. |