上游:
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”,它给了我这个历史,除了丢失的“补丁”分支的名称。
答案 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上)