2017-07-31 42 views
0

我有什么:如何创建第二拉请求,并忽略所有先前的承诺

两支branch1branch2不同的特点,在branch1我推5提交和创建拉请求并等待代码审查。 然后,我完成了branch2中的新功能,并将3推向了第二个。

问题:

当我打算从branch2我看到所有8提交将被添加到该请求创建新的拉请求。由于某些原因,我可以要求从branch2只拉那些3

我在做什么错了?

+1

看起来像这样移动的分支:'branch1'是从一个基本提交创建的,5个新的提交已经完成,'branch2'是从'branch1'的提示创建的,另外还有3个提交。如果是这样,'branch2'也应该从基本提交创建。您可以将3个新的提交重新绑定到基本提交上,或者现在从基础创建'branch3',然后选择3个提交。最后从'branch3'创建一个新的请求。 – ElpieKay

回答

1

你可以尝试一种选择是:

(I)一旦你这样做5提交到branch1,把它推到远程代码审查。 (二)结帐到branch2,如果你输入git log你应该看到以前的5承诺branch1。做一个git reset --hard HEAD~5,这将使您的本地回购5提交回来。您不必担心永久失去那些5提交,因为它们在远程回购的branch1上可用 - 您可以在需要时进行提取。

(III)进行更改您branch2,为您branch2新拉请求,并推动这些3提交到远程branch2代码审查。现在,以前的5提交将不会包含在新的请求中。

注意:当两个分支在独立功能上工作并且不依赖于对方的更新工作时,可以使用此选项。 我希望这能回答你的问题。如果您有任何问题,请告知我。

此外,当你想要的分支是分开的,权当您正在创建的新的分支,做一个git checkout master,然后git checkout -b branch2使branch2从主人的历史创造,而不是branch1或你的工作分支。然后分支提交不会相互重叠,并且会跟随主人。因此,在你的情况下,你将分别在和3之后提交5提交,分别在branch2之后提交。

+1

嘿,你的评论是有用的,所以我已经删除了'branch2'('stash'所有在它之前)和之前创建一个新的使用'git checkout',它帮助! – kyxap

+0

@kyxap很高兴它帮助:) – nj2237

相关问题