提交ID来自何处?

Dun*_*nno 3 git

我对此真的很好奇。提交ID不能是随机的,因为它们必须是唯一的。但是,它们似乎是随机的,这让我想知道,为什么它们不只是连续的数字?我的意思是,它们只需要在存储库中唯一,对吗?还是我在这里错了?

谢谢!

Tod*_*obs 5

Git提交ID是SHA-1哈希

在像Git这样的分布式版本控制系统中,修订号必须在所有系统之间保持一致。由于Git历史记录是有向无环图,而不是线性序列,因此提交和对象使用SHA-1哈希来进行跨系统的明确标识。

提交ID在Git中不是随机的。它们实际上是提交对象的SHA-1哈希,其中包括树和对象的清单。有关更多详细信息,请参见Git内部。最终结果是,任何给定的对象哈希都是确定性的:同一个对象将产生相同的哈希,无论它如何到达当前状态。