在这种情况下,repo 中可能不存在合并 PR 的提交?

Posted

技术标签:

【中文标题】在这种情况下,repo 中可能不存在合并 PR 的提交?【英文标题】:In which case a commit of a merged PR might not exist in the repo? 【发布时间】:2021-07-12 20:13:45 【问题描述】:

我在做基于GitHub的挖矿操作,发现了一个有趣的案例。 This URL 属于 spring-projects/spring-framework repo 的合并 PR。但是,页面说

此提交不属于此存储库上的任何分支

我很想知道在什么情况下合并 PR 的提交可能不会出现在存储库中?

【问题讨论】:

该 PR 是由 fork 生成的,因此提交存在于 that 存储库中。目标仓库中的等价物是github.com/spring-projects/spring-framework/commit/…。 如果你做一个 squash 和 merge,所有的提交将被合并到一个单独的提交中,并且将被添加到基础分支,所以它们的原始提交不会与基础分支的合并提交相同。 【参考方案1】:

我从@jonrsharpe 和@anand-vidvat 得到了答案,我不希望这个问题处于未回答状态。因此,这是基于他们的评论的答案。

在 GitHub 中,合并可以以两种形式发生 - 1) 将源分支中的所有提交添加到目标分支,或者 2) 将源分支中的所有提交压缩到新提交中,并且仅将新提交添加到目标分支。

在前一种风格中,所有 PR 的所有提交都可以在 master/main 分支中找到。然而,在后一种方法中,master/main 分支将只包含 squash 提交。因此,我在存储库中找不到 合并 PR 的提交

【讨论】:

以上是关于在这种情况下,repo 中可能不存在合并 PR 的提交?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 API 触发的 repo 导入 GitLab 中包含 GitHub 问题和 PR?

如何阻止我的推送与我的公开 PR 合并?

编写 Azure Devops / TFS API 脚本时 - 有没有办法在不退出的情况下处理“Get Repo 不存在”错误响应?

pr这种情况怎么办,右边为啥会放大,急!!!真心求助

我可以在不执行合并的情况下从主干更新分支吗?

在这种情况下,GNU为什么要关心斜杠?