社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

git:如果我在两个不同的系统上进行相同的更改来提交元数据,我会得到相同的散列吗?

SilverWolf • 5 年前 • 1652 次点击  

我有一个正在开发的小应用,我有两个不同的存储库:一个在我的Mac电脑上,一个在我的Windows系统上。现在他们 应该 包含相同的内容(我刚从windows存储库拉到mac存储库)。

现在我想 change the author information 为发布做准备的所有提交。

如果我这样做 分别地 在每个存储库中,它们是否仍然兼容,或者我必须将其中一个从另一个中删除?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46954
 
1652 次点击  
文章 [ 2 ]  |  最新文章 5 年前
SilverWolf
Reply   •   1 楼
SilverWolf    6 年前

我刚试了一下,得到了 相同的散列 两次都是。

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

bk2204
Reply   •   2 楼
bk2204    6 年前

git在commit对象中包含各种信息。所有这些信息都被分解到对象的散列中;如果其中任何信息不同,散列也会不同。包含在每个提交中的是

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

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