Git:在git log中显示的提交SHA和PR中的是否不同?

3

我从主分支创建并检出了一个功能分支。然后我进行了5次提交。当我将我的分支推送到远程仓库并打开PR时,它显示这5个提交,但与我在git日志中看到的SHA不同。

我的理解是每个提交都有唯一的SHA,所以我期望它们相同。我的理解有误吗?

谢谢!


这不可能发生,所以我能想到的唯一解释是你要么没有在本地查看正确的分支,要么没有在远程上查看相同的分支。 - undefined
值得注意的是,提交ID(SHA哈希值)的差异永远不会是由Git引起的,Git依赖于共享这些提交的所有系统上的提交ID相同。但是,这可能会发生因为人为错误,比如本地变基后忘记推送,或者出于恶意原因,比如攻击者向您的存储库中注入代码。这两种情况都应引起关注,在您可以自信地执行合并操作之前,您的拉取请求中的提交ID必须与本地提交相同。 - undefined
1个回答

1
我理解的是每个提交都有一个唯一的SHA。 是的,没错。因此,我期望[拉取请求中的哈希ID]是相同的。 它们要么相同,要么拉取请求是针对不同的提交。后者总是可能的:任何人(或任何东西)都可以通过提取现有提交并更改一些数据再次提交来复制它。 由此产生的提交甚至可能具有相同的快照,但元数据不同,因此是不同的-即具有不同的哈希ID。
如果哈希ID匹配,则提交是完全相同的。如果不匹配,某些内容不同,但仅凭哈希ID无法告诉您具体差异。使用git fetch检索提交——请注意,您可以检索拉取请求——然后在本地检查提交以查看区别。请注意,使用git fetch检索拉取请求需要知道Web主机的拉取请求名称。对于GitHub来说,这很简单:向URL为U且拉取请求编号为N的存储库发出的拉取请求在URLU下的名称为refs/pull/N/head

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接