提交之前知道GIT哈希吗?

时间:2013-01-08 04:34:50

标签: git hash

在提交之前有没有办法知道提交的哈希值?

2 个答案:

答案 0 :(得分:13)

你有什么理由需要这个?如果您正在考虑将提交的哈希值放入其自己的提交消息中,我很遗憾地告诉您,但这是不可能的(或者至少在不破坏SHA1的情况下是不可能的)。提交消息是生成散列时使用的部分之一,因此任何修改消息的尝试都会改变散列。

在任何情况下,在提交之前找出提交的哈希几乎与实际提交无法区分,写下哈希,然后丢弃提交(正如Carl Norum在他的评论中所建议的那样)。原因是通过生成提交对象并将其传递给SHA1来生成哈希。因此,为了在不提交的情况下找到哈希,您必须手动完成提交过程并将结果SHA1,而不实际将对象写入磁盘。这不仅是不切实际的,而且也完全没有意义。

答案 1 :(得分:10)

提交哈希值取决于提交时间。

如果您在同一秒内进行2次相同更改,相同父级,同一作者和提交消息的提交,您将获得相同的哈希值。否则,哈希应该是不同的。