5

运行该命令会git ls-remote列出以下条目:

e6c1ddea6ee8eefa9e96e349dd4fad4a48c16448    refs/tags/1.1
1a3b5ae3a50ca2f24e5cd917cbf51d371f1dd01e    refs/tags/1.1^{}
81901877c5add523cd4a4bb8f51ad3bbbacbd686    refs/tags/1.2
4681b1ae6ec71301019da13d1790c2f808c2c553    refs/tags/1.2^{}

输出中的^{}含义是什么?

4

1 回答 1

5

它们不是名称的一部分,而是git rev-parse它应该取消引用标签的指示符(并且幸运的是,找到提交,尽管理论上标签可以指向另一个标签,甚至是树或blob;但如果它指向另一个标签,^{}则会继续剥洋葱层,直到碰到非标签)。

git ls-remote(或者实际上,远程本身)使用此语法向您发送提交 ID。(我不太确定如果标签最终指向树或 blob 会发生什么。)

于 2013-10-21T20:11:01.160 回答