如何创建第二个拉取请求并忽略所有先前的提交

时间:2017-07-31 22:25:24

标签: git branch pull-request

我有什么:

两个分支branch1branch2用于不同的功能,在branch1我推送5提交并创建了拉取请求并等待代码审核。 然后我完成了branch2中的新功能,并在第二个中推送了3个新提交。

问题:

当我要从branch2创建新的拉取请求时,我发现所有8次提交都将添加到此请求中。出于某些原因,我可以要求仅从3中提取branch2

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试的选项是:

(I)完成对5的{​​{1}}次提交后,将其推送到远程进行代码审核。

(II)结帐到branch1,如果您输入branch2,您应该会看到之前的git log提交到5。执行branch1,这将使您的本地回购git reset --hard HEAD~5提交回来。您无需担心永久丢失这些5提交,因为它们可以在远程仓库5上找到 - 您可以在必要时提取它。

(III)对branch1进行更改,为branch2创建新的请求,并将branch2次提交推送到远程3进行代码审核。现在,之前的branch2提交将不会包含在您的新拉取请求中。

注意:当两个分支处理不同的功能并且不依赖于彼此的更新时,可以使用此选项。 我希望这回答了你的问题。如果您有任何问题,请告诉我。

此外,如果您希望分支在创建新分支时分开,请执行5然后git checkout master,以便从主分区创建git checkout -b branch2 ; s历史,而不是branch2或您的工作分支。然后分支提交将不会相互重叠,并将跟随主人。因此,在您的情况下,您将分别在branch1后跟5branch1提交3次提交。