从 GitHub Pull 请求上的不同分支提交

Era*_*ray 1 svn git github pull-request

我正在 GitHub 上使用我们公司应用程序的一个分支。我们有一个开发分支,我们正在从开发创建新分支来处理类似的工作feature/new-feature并在工作完成后创建对原始存储库的拉取请求。当然,在创建 PR 之前要进行变基。

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

很快,我的 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)也在开发分支上。

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

Tim*_*sen 5

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

git rebase -i HEAD~5
Run Code Online (Sandbox Code Playgroud)

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

pick dl4mn23 commitA comment
pick 47kmeu6 commitB comment
pick k39fn39 commitC comment
pick lsw42fg commitD comment
pick mk837dc commitE comment
Run Code Online (Sandbox Code Playgroud)

要删除AC提交,您只需删除相应的行即可:

pick 47kmeu6 commitB comment
pick lsw42fg commitD comment
pick mk837dc commitE comment
Run Code Online (Sandbox Code Playgroud)

保存文件并退出编辑器,这将开始变基。您可能必须解决合并冲突。完成变基后,您可以验证您是否拥有所需的历史记录git log

另请注意,由于您重写了该分支的历史记录,因此您必须通过以下方式将其强制推送到远程:

git push origin feature --force
Run Code Online (Sandbox Code Playgroud)