1

我有一个坚固的树对象,我想找出它的路径(相对于根)是什么以及编写该树时的提交 ID 是什么。例如:

tree  = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree

我应该对这个树对象执行哪些操作,以便获得它的路径和提交 ID?

4

1 回答 1

1

该信息根本不存储在树中。Git 使用 Merkle 树,父母知道子树是什么,但每棵树都可以包含在多个提交中(这是典型的情况,因为很少触及一些子目录)。

如果这些目录具有相同的内容,则还可以通过许多不同的路径访问树。

找出一棵树属于哪里的唯一方法是查看每个提交并从根递归查看是否可以找到给定的树。这将是一项非常昂贵的操作。

我建议你退后一步,弄清楚为什么你认为你需要弄清楚从哪里可以到达一棵树。听起来您已经决定了许多步骤,并且您正在询问一个细节,什么时候您应该从更高的层次来看待它。

于 2015-12-14T16:32:05.247 回答