在GitHub Pull Request上发布不同的分支

时间:2015-12-16 08:38:12

标签: git svn github pull-request

我正在GitHub上使用我们公司的应用程序。我们有一个开发分支,我们正在创建新的分支,从开发到工作(如 like feature/new-feature ),并在我们的工作完成时创建对原始仓库的拉取请求。当然,在创建PR之前要做一个改变。

在rebase之后,来自不同开发人员的一些提交( commitA commitC )合并到我的分支。现在在我的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)也在develop分支上。

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

1 个答案:

答案 0 :(得分:4)

您可以在交互模式下执行Git rebase,然后有选择地删除您不想要的AC次提交。假设您想在rebase期间查看最后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

保存文件并退出编辑器,编辑器应该开始重组。您可能必须解决合并冲突。完成rebase后,您可以使用git log验证您是否拥有所需的历史记录。

正如另一个注释,由于你重写了这个分支的历史,你将不得不通过以下方式强制将它推送到远程:

git push origin feature --force