67

git ls-remote コマンドの最後に奇妙な文字が 2 つ出てきましたが、これはどういう意味ですか?

0e4c39557ccb6789173c  refs/tags/2011-11-04
966f8df553f18c486820  refs/tags/2011-11-04^{}

この ^{} の意味を知っていますか? また、この git タグが重複しているように見えるのはなぜですか?

4

2 に答える 2

59

^{}表記法はマニュアルで説明されていますgitrevisions

<rev>^{}, e.g. v0.99.8^{} 

接尾辞 ^ の後に空の波括弧のペアが続く場合、オブジェクトがタグである可能性があり、非タグ オブジェクトが見つかるまでタグを再帰的に逆参照することを意味します。

この場合、 -refs/tags/2011-11-04はタグ オブジェクトを指すタグ0e4c39557ccb6789173cです。これによりrefs/tags/2011-11-04^{}、タグを最終的な非タグ オブジェクト (この場合は - 966f8df553f18c486820(コミット)) に逆参照できます。^{}タグのないオブジェクトに適用すると、ノープになることに注意してください。

このgit show-refコマンドを使用して、タグだけでなく、最終的に逆参照された非タグ オブジェクトを表示できます。

$ git show-ref --tags
3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}

$ git show-ref --tags --dereference
3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c
6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{}
055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}

git show-refマニュアルから:

-d 
--dereference 

タグもオブジェクト ID に逆参照します。「^{}」が追加されて表示されます。

于 2012-10-17T16:44:58.940 に答える