git cat-file将标记的父项列为树

时间:2015-08-05 14:44:01

标签: git git-tag

$ git cat-file -p v0.87.1

树e2c1430c2a24b5878c4928d576f4c92f51047709 父母f70a7297f624629e34882b800c75bc4af0193d85
作者Abc Abc 1438782699 -0700
提交人Abc Abc 1438782699 -0700

v0.87.1

你能帮我理解这个输出吗?列出的树不在git log中,但父级是。

具体来说,创建此标记的git tag命令是什么?如何针对树创建标记?

2 个答案:

答案 0 :(得分:1)

git log将显示一系列提交中的提交内容,git cat-file将显示DAG中给定节点的内容。

在这种情况下,您具有提交的内容,其中tree是对具有每个文件的引用和文件名的节点的引用,parent是先前的提交(可能多于一个)合并提交的情况)。您可以按git log --pretty="format:% t"显示树引用,有关保存输出的详细信息,请参阅http://git-scm.com/docs/git-log Author是进行更改的人,committer是提交者。大多数情况下它们是相同的,但是如果某人通过您提交的邮件向您发送补丁,则它们将具有不同的值。

答案 1 :(得分:1)

有问题的标签必须是轻量级标签,这只是一个参考。因此,git cat-file将显示标记所指向的对象的内容,在本例中为提交。

您正在查看提交的正常内容,该内容跟踪提交的树(目录结构的快照)及其父提交和其他元数据。

如果要创建带注释的标记(实际上是实际标记对象的引用),则必须指定-a或--annotate。或者,-m或--message后跟一条消息。

此外,对于非提交对象也可以创建任何类型的标记,但这并不常见。情况并非如此。