我在github上有pull请求,我推了一些提交。它已经闲置了一段时间,现在它已经出现了合并冲突。
所以我将我的功能分支与主分支合并,解决了冲突并推送它。
现在我想压缩/删除已创建的合并提交。
我尝试了git rebase -i
但是在我的上一次提交和合并提交之间有一些提交。
任何帮助表示赞赏。
答案 0 :(得分:1)
我认为你已走上正轨,现在有两个选择看看图片:
A1 — A2 — A3 — A4
\
F1 — F2 — F3
其中A1..A4是项目的主线,F1..F3是您在PR中提交的功能分支。现在,由于变化冲突,F3不能轻易与A4合并。
您可以创建合并提交F4:
A1 — A2 — A3 — A4
\ \
F1 — F2 — F3 — F4
然后提交F4作为PR。在这种情况下,repo所有者可以使用F4并将其合并到主线,因此项目历史记录将如下所示:
A1 — A2 — A3 — A4 — A5
\ \ /
F1 — F2 — F3 — F4
基本上,A5 sourcetree将等于F4,在某些工作流程中,A5恰好是F4。
或者,您可以签出F3(git checkout <feature_branch>; git reset --hard F3;
),然后使用git rebase -i A4
从当前项目HEAD上的功能分支重新应用更改。您需要逐个解决所有冲突,最后您将获得以下提交结构:
A1 — A2 — A3 — A4
\
F1' — F2' — F3'
然后您可以使用git push -f ...
强制更新您的存储库fork,然后重新创建PR。