重新启动已在我的本地开发分支中合并的pull-request

时间:2013-12-02 15:00:48

标签: git github pull-request

上游:

A -- B -- C | develop

我上游分叉并建立一个新的分支(补丁)

   P1       | patch
 /
C           | develop
然后我提交拉取请求。 由于上游不会快速合并我的PR,因此我将我的补丁分支合并到本地开发分支上以开始使用我的工作。

   P1       | patch
 /    \
C  -- P2    | develop

然后上游做了一些改变以发展:

A -- B -- C -- D -- E

我做“git fetch upstream”,现在我有:

             P1       | patch
           /    \
A -- B -- C  -- P2    | develop
           \
            D -- E    | upstream/develop

我想要:

                       P1     | patch
                     /    \
A -- B -- C -- D -- E  -- P2  | develop

我试图从开发中做一个“git rebase -p upstream / develop”,它给了我这个历史,除了丢失的“补丁”分支的名称。

2 个答案:

答案 0 :(得分:1)

我解决了删除我本地开发分支(P2)上的最后一次提交:

git checkout develop
git rebase -i HEAD~2

通过这种方式,我可以在开发分支上做一个简单的快进

git pull upstream develop

现在我可以修改我的补丁分支,并最终重做合并。

git checkout patch
git rebase upstream/develop

git checkout develop
git merge --no-ff patch

我不知道这是否是最好的方式,所以我等着结束这个问题。

答案 1 :(得分:0)

由于您针对patch分支创建了拉取请求,因此您可以使用:

git checkout patch
git rebase upstream/develop
git push origin patch

这将使用新的重新定位补丁更新pull-request。

(假设拉取请求在github上)