1

オブジェクトタグを作成しました

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

致命的と報告されるのはなぜですか?

4

1 に答える 1

0

オブジェクトを指定するために使用される構文は、 gitrevisionsgit cat-fileで指定されたものです。

<object>

表示するオブジェクトの名前。
オブジェクト名の綴り方の完全なリストについてはSPECIFYING REVISIONS、gitrevisions(7) の「」セクションを参照してください。

そして、それはに適用されます<rev>

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

サフィックスの^後に中括弧で囲まれたオブジェクト タイプ名が続く場合、そのオブジェクトはタグである可能性があり、そのタイプのオブジェクトが見つかるか、オブジェクトを参照解除できなくなるまで (この場合は barf)、タグを再帰的に参照解除します。
<rev>^0の省略形です<rev>^{commit}

この場合、tag_1「そのタイプのオブジェクトが見つかるまで」逆参照できるかどうかはわかりません (既にタグになっているため)。

于 2012-05-31T08:32:25.337 に答える