一个 Git 提交可以有多个树对象吗?

3

提交对象(commit object)始终只有一个树对象(tree object)吗?

我想不出有例外的情况,但也没有发现明确说明的文档。


为什么不尝试使用ls-tree命令查看提交呢? - matt
这就像问一个男人能否有两个妻子一样?没有客观的限制,只是通常不是这样设计的。 - Alexey Larionov
1
@AlexeyLarionov:作为曾经在犹他州生活过的人,我要指出实际上是与之接壤的州有更多的FLDS家庭。 - torek
1个回答

4

提交对象是否总是恰好有一个[顶级]树对象?

是的。

我想不出任何情况,它不是这种情况,但我也看不到任何明确说明的文件。

这是设计的一部分:没有它,git rev-parse commit^{tree}将没有明确的结果。

人们可以设想与Git相关的系统,其中提交可以存储多个树对象1,但需要解决许多设计问题。


1我在几个上下文中都考虑过这个问题,包括“子模块是错误的,子树更好但需要更好的支持”的问题。 我还没有解决所有问题。

请注意,提交对象还需要恰好有一个作者和一个提交者行; 如果这些格式不正确,git fsck将会报错。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接