在我的工作场所,我们首先创建一个分支,在我们的 Github 存储库中为该分支创建一个拉取请求,然后有人对其进行审查并点击“合并拉取请求”来提交代码。这是一个非常标准的工作流程。
通常,当我们点击“Merge pull request”时,Github 会创建一个名为“Merge pull request #1234 from branchname”的新提交,其中包含 2 个父级——master 的 HEAD,以及 PR 中的最新提交。
今天我像往常一样合并了一个 PR,不知何故 Github 决定不使用 master 的 HEAD 作为父母之一,而是使用一天前的提交(我们每天进行 20 到 30 次提交)。它使用的这个提交是 PR 分支所基于的提交。这导致 master 分支丢失了从那时到此 PR 合并之间的所有提交。
有谁知道这怎么会发生?这是 Github 的错误吗?还是提交 PR 的开发者做了什么坏事,可能会覆盖 master?我认为所有提交都将简单地合并到 master 中,而无需在 Github 中进行任何 rebase 或历史重写。