Git:如果我做出相同的更改以在两个不同的系统上提交元数据,我会得到相同的哈希吗?

时间:2018-12-04 02:21:27

标签: git

我正在开发一个小应用程序,并且有两个不同的存储库:一个在Mac机器上,一个在Windows系统上。现在,它们应该包含相同的内容(我刚刚从Windows存储库中拉到Mac中)。

现在,我想change the author information处理所有提交,以准备发布。

如果我在每个存储库上分别进行此操作,它们仍将兼容,还是我不得不吹走另一个存储库并从另一个存储库中拉出来?

2 个答案:

答案 0 :(得分:0)

Git在提交对象中包含各种信息。所有这些信息都被计入对象的哈希值中。如果其中任何一个不同,则哈希也将相同。每次提交中都包含

  • 树对象的哈希(取决于每个跟踪的文件和目录)
  • 先前提交(或合并,如果是合并)的哈希
  • 作者的姓名,电子邮件,时间戳和时区
  • 提交者的姓名,电子邮件,时间戳和时区
  • GnuPG签名(如果有)
  • 提交消息

因此,如果您在两台计算机上进行更改,除非它们在完全相同的时间戳上进行,否则散列将有所不同,因为作者和提交者的时间戳将不同。

答案 1 :(得分:0)

我刚刚尝试过,并且两次都得到了相同的哈希

我的猜测是,由于我只更改了作者信息(姓名和电子邮件),所以时间戳都保持不变,因此哈希值是相同的。