提交之前知道GIT哈希吗?

Mar*_*ato 16 git hash

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

Lil*_*ard 15

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

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

  • @MarceloLiberato:在Subversion中,预测你正在创建的提交的修订号是多么微不足道.在git中,它实际上是不可能的(再次,除非你提议以某种方式打破SHA1). (2认同)
  • "你有什么可能的理由"来教导这个人?这是一个合理的问题,不需要你的判断洒在实际的答案之间.. (2认同)

lin*_*ize 10

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

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