已经打开的新拉取请求

时间:2019-07-03 18:09:35

标签: git pull-request

我已经创建了拉取请求以从我的fork分支进行投影。回购所有者将在代码检查后接受它,但是由于他当前很忙,它可能要等待一段时间。我不想等待,在分支中全新的分支上实现了下一个功能。

如果现在我创建新的拉取请求,它将与先前的合并并创建一个巨大的拉取请求吗?还是会有两个单独的公关?我担心它会合并,因为在GH的commits字段中,我看到以前PR的提交。

3 个答案:

答案 0 :(得分:1)

您可以一个接一个地开发功能,没问题。唯一的事情是,当您要执行操作时,它需要做更多的工作。所以...一旦您的第一个功能合并到母版中(并且假设您不必将其从当前位置移开),您就可以非常轻松地对feature2进行基础设置:

git checkout feature2
git rebase master

之所以可行,是因为feature2的修订版本已经合并到master中。

如果要求您重新设置feature1的基础,可能会有些棘手...那么您将需要执行以下操作:

git branch temp feature1 # save current position of feature1, will need it later
git checkout feature1
git rebase feature1
# now... in order to rebase feature2, you have to make sure _not_ to rebase the revisions you have already rebased of feature1
git rebase --onto feature1 temp feature2 # rebase feature2 onto feature1, do _not_ rebase the revisions of the old feature1
git branch -D temp # delete temp branch

希望有帮助

答案 1 :(得分:1)

找出以下内容

                  ___ you created a new branch, call it "branch-01" 
                 /       
master branch __/_______________________

现在这取决于您如何从那里继续前进,以及您想如何从那里继续前进,因为存在两种不同的情况。

场景1: 您创建了一个PR分支01,其中包含一些提交,其中包含所有需要合并回master的工作。但是需要进行审核,以至于处于暂停状态。

方案2: 您创建了一个PR branch-01,其中包含一些包含一些工作的提交。现在,您需要进行这些更改才能继续下一个工作。因此,现在要做的是,如果您在branch-01上,则执行git co -b branch-01-next-steps,现在branch-01-next-steps分支将具有branch-01的先前工作,因为您是从那里创建了一个新分支。因此,该分支位于分支01的顶部,看起来像这样

                                    ______branch-01-next-steps______
                                   /
                  ____branch-01___/ 
                 /       
master branch __/_______________________

也许这就是您想要和需要的。但是也许您需要master的“新”新分支。现在,您要做的是首先git co master,现在您在本地master分支上。从那里可以执行git co -b next-steps,它将看起来像

                  __branch-01..(waiting)              ___next-steps
                 /                                   / 
master branch __/___________________________________/________

如果您需要从主服务器获取已在远程上合并的更改,然后再开始进行下一步,则必须先进入主服务器git co master,然后依次输入git pull origin master和{{1} },下一步将包含来自远程主服务器的最新更改。

您随时可以使用git co -b next-steps返回分支机构01

答案 2 :(得分:1)

这将是两个单独的拉取请求。然后将它们都进行审查并合并到主分支中。

尽管如果您将第二个分支的第一个分支的更改包括在内,则可以用这些更改来检查第一个分支,但是如果将两者合并,最终可能会遇到诸如冲突之类的问题(如果您也在进行更改)到第二个分支的第一个分支中的代码)。

我过去有过类似的经历,我要做的是取消/拒绝第一个请求请求(您的回购所有者可能需要执行此操作),而不是合并它,而只是合并对最新请求请求的更改包含两者的更改。我认为这是最简单的事情。