在进入同一状态后,git历史记录中是否有相同的哈希提交?例如,在还原后?
一个哈希可能有更多提交?
让我们假设历史
commit number 1: hash 1111
commit number 2; hash 2222
commit number 3(revert of 2), hash 3333 or 1111?
我知道问题Can you get a duplicate hash in Git in any way and what are the implications非常相似,但它没有回答我的问题。
答案 0 :(得分:1)
是的,如果你还原提交,它将有一个新的哈希。
这是因为提交哈希依赖于作为祖先的任何提交,即,通过连续跟随父提交可以达到的任何提交。由于commit 3和commit 1有不同的祖先(一个有2个作为祖先,另一个没有),它会得到一个新的哈希。
在相关的说明中,git中的每个对象都获得一个哈希值;提交,树(目录),blob(文件)和标签。通过还原提交3创建的树将具有<树>提交1指向的相同哈希,因为树仅依赖于其内容。他们没有跟踪他们的历史。这只能通过指向树的提交来完成。您可以通过
找到特定提交的树形哈希$ git cat-file -p <commit-hash>