gpt4 book ai didi

git - git-apply 或 git-am 应该提供相同的哈希值吗?

转载 作者:太空狗 更新时间:2023-10-29 13:32:54 25 4
gpt4 key购买 nike

我想我错过了什么。我的印象是 git 使用 SHA-1 哈希提交标识符意味着可以确定从其他人那里获得的针对该提交的补丁没有被更改。

进行我在我的机器上进行的测试(很明显,名称和电子邮件已更改):

cd dogcatcher
dogcatcher> git log
commit 926f347567a9da6f7692aca0e23d13f094d9e3a6
Author: Joe User <joe@test.com>
Date: Sat Dec 17 15:28:55 2011 -0600

3rd branch commit

commit 11e8055aa5e8f0d323c48b4f691adced7a8a9762
Author: Joe User <joe@test.com>
Date: Sat Dec 17 15:10:44 2011 -0600

second branch commit

commit 23deb7093a8565479092ef84142a0e2e7282d213
Author: Joe User <joe@test.com>

dogcatcher> git format-patch 23de (format a patch containing everything since 23de)

dogcatcher> cd ..
~> cp -r dogcatcher catcatcher
cd catcatcher

catcatcher> git reset --hard 23de (reset HEAD to 23de)
catcatcher> git am 00* (apply the two patch files)
catcatcher> git log

commit 2548980811d1875971ce1a018df98374950e0059
Author: Joe User <joe@test.com>
Date: Sat Dec 17 15:28:55 2011 -0600

3rd branch commit

commit 7d651d05344ba6e2cd18d8e24c0c350d0c7dec66
Author: Joe User <joe@test.com>
Date: Sat Dec 17 15:10:44 2011 -0600

second branch commit

commit 23deb7093a8565479092ef84142a0e2e7282d213
Author: Joe User <joe@test.com>

如您所见,最后两次提交的哈希值不同,这是由补丁创建的。现在,也许这是有道理的。当然,补丁创建的文件上的时间戳是不同的。 (我不确定散列中包含哪些信息集)

但是,如果是这样,我如何验证我刚刚应用的补丁是否包含完全相同的代码?我如何知道向我发送补丁文件的人没有进行恶意更改?

还是我犯了一个错误导致了不同的散列,如果我做对了,我会得到相同的散列?

最佳答案

默认情况下,git am 将提交者日期设置为当前时间。您可以使用 --committer-date-is-author-date 标志来避免这种情况,尽管它可能仍会将您设置为提交者(事实上,它可能会)。您可以使用 git log --format=fuller 来验证这一点,它也会显示提交者信息。

关于git - git-apply 或 git-am 应该提供相同的哈希值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8550400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com