オブジェクトタグを作成しました
git tag -a tag_1 -m "test tag"
ただし、次のコマンドは致命的なエラーを報告します。
git cat-file -t tag_1^{tag}
fatal: Not a valid object name tag_1^{tag}
ただし、次のものは正常に機能します。
git cat-file -t master^{commit}
commit
致命的と報告されるのはなぜですか?
オブジェクトタグを作成しました
git tag -a tag_1 -m "test tag"
ただし、次のコマンドは致命的なエラーを報告します。
git cat-file -t tag_1^{tag}
fatal: Not a valid object name tag_1^{tag}
ただし、次のものは正常に機能します。
git cat-file -t master^{commit}
commit
致命的と報告されるのはなぜですか?
オブジェクトを指定するために使用される構文は、 gitrevisionsgit cat-file
で指定されたものです。
<object>
表示するオブジェクトの名前。
オブジェクト名の綴り方の完全なリストについてはSPECIFYING REVISIONS
、gitrevisions(7) の「」セクションを参照してください。
そして、それはに適用されます<rev>
。
<rev>^{<type>}, e.g. v0.99.8^{commit}
サフィックスの
^
後に中括弧で囲まれたオブジェクト タイプ名が続く場合、そのオブジェクトはタグである可能性があり、そのタイプのオブジェクトが見つかるか、オブジェクトを参照解除できなくなるまで (この場合は barf)、タグを再帰的に参照解除します。
<rev>^0
の省略形です<rev>^{commit}
。
この場合、tag_1
「そのタイプのオブジェクトが見つかるまで」逆参照できるかどうかはわかりません (既にタグになっているため)。