在这种情况下,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?
编写 Azure Devops / TFS API 脚本时 - 有没有办法在不退出的情况下处理“Get Repo 不存在”错误响应?