8

「^{}」で終わるタグは何ですか? それらは実際には裸のリポジトリには存在しません。

$ git ls-remote -t origin
55f09717db93733b8f151763e7e28628f3f22129        refs/tags/Init
dce13158fff0e95b8adcc5628f193a8c03bada9c        refs/tags/Init^{}
2c9f64c306aa76e5b689bc2ffb41163aa255ac40        refs/tags/kaos-red
0970feca84d87df60ec5e943da2f55f1947fd0a3        refs/tags/legacy
dce13158fff0e95b8adcc5628f193a8c03bada9c        refs/tags/legacy^{}

たとえば、「git push :legacy^{}」でそれらを削除しようとすると、git が応答します。

fatal: remote part of refspec is not a valid name in :Init^{}

それで、彼らはどこから来たのですか?ls-remote のバグですか?

4

2 に答える 2

7

git rev-parse マニュアルでは、git でコミットやその他のオブジェクトを指定するさまざまな方法について説明しています。この場合、次のように書かれています。

^{}、例: v0.99.8^{} 接尾辞 ^ の後に空の中括弧が続く場合、オブジェクトがタグである可能性があり、タグ以外のオブジェクトが見つかるまでタグを再帰的に逆参照することを意味します。

于 2013-02-05T16:30:58.927 に答える