git对象“master^{tree}”的文档在哪里?

ovfsdjhp  于 2023-03-21  发布在  Git
关注(0)|答案(1)|浏览(80)

Pro Git手册的Section 10.4 Git Internals - Packfiles包含以下命令:

$ git cat-file -p master^{tree}

我知道master^是前一个HEAD,也就是master分支上的倒数第二个提交,但是之后的{tree}是什么意思,我可以在哪里读到它?
奇怪的是,以下代码在fatal: Not a valid object name master{tree}中失败:

$ git cat-file -p master{tree}
5rgfhyps

5rgfhyps1#

格式在git-revisions中解释,在这种情况下,它似乎是实际返回的对象类型的定义:
^{},e.g. v0.99.8^{commit}后缀^后跟括在大括号对中的对象类型名称意味着递归地解引用对象,直到找到该类型的对象或该对象不能再被解引用为止(在这种情况下,barf)。例如,如果是commit-ish,^{commit}描述相应的提交对象。类似地,如果是tree-ish,^{tree}描述了相应的树对象。^0是^{commit}的简写。

相关问题