从 GitHub 拉取请求的不同分支提交

Commits from different branch on GitHub Pull Request

我正在 GitHub 上使用我们公司应用程序的分支。我们有一个 develop 分支,我们正在从 develop 创建新的分支以在 like (like feature/new-feature) 上工作,并在我们的工作完成后创建对原始 repo 的拉取请求。当然在创建 PR 之前做一个 rebase。

rebase 后,来自不同开发人员的一些提交(commitAcommitC)合并到我的分支。现在在我的 PR 中,这些提交也列为文件更改。与develop有冲突。

很快, 我的 PR 的提交列表是这样的:

commitA <---this commmit is different developers and shouldn't be listed here commitB commitC <---this commmit is different developers and shouldn't be listed here ...

如何从我的 PR 中删除这些提交?这些提交(commitA 和 commitC)也在开发分支上。

我的分支应该只有commit B,commitA和commitC属于开发分支,不是我的分支。

您可以在交互模式下执行 Git 变基,然后有选择地删除不需要的 AC 提交。假设您想在变基期间查看最后 5 次提交,您可以执行以下操作:

git rebase -i HEAD~5

这将打开一个编辑器,其中包含一个如下所示的文件:

pick dl4mn23 commitA comment
pick 47kmeu6 commitB comment
pick k39fn39 commitC comment
pick lsw42fg commitD comment
pick mk837dc commitE comment

要删除 AC 提交,您只需删除相应的行,剩下的就是:

pick 47kmeu6 commitB comment
pick lsw42fg commitD comment
pick mk837dc commitE comment

保存文件并退出编辑器,这应该会开始变基。您可能必须解决合并冲突。完成变基后,您可以使用 git log.

验证您是否拥有所需的历史记录

作为另一个注意事项,由于您重写了该分支的历史记录,因此您将不得不通过以下方式强制将其推送到远程:

git push origin feature --force