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

用于指定对象的语法git cat-filegitrevisions中指定的语法。

<object>

要显示的对象的名称。
有关拼写对象名称的更完整列表,请参阅SPECIFYING REVISIONSgitrevisions(7) 中的“”部分。

它适用于<rev>.

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

后缀^后跟括在大括号对中的对象类型名称意味着该对象可以是一个标签,并且递归地取消引用该标签,直到找到该类型的对象或该对象不能再被取消引用(在这种情况下,barf)。
<rev>^0是 的简写<rev>^{commit}

在这种情况下,我不确定它是否可以取消引用tag_1“直到找到该类型的对象”(因为它已经是一个标签)。

于 2012-05-31T08:32:25.337 回答