壁球合并提交

时间:2016-02-15 07:23:55

标签: git github merge

我在github上有pull请求,我推了一些提交。它已经闲置了一段时间,现在它已经出现了合并冲突。 所以我将我的功能分支与主分支合并,解决了冲突并推送它。 现在我想压缩/删除已创建的合并提交。 我尝试了git rebase -i但是在我的上一次提交和合并提交之间有一些提交。 任何帮助表示赞赏。

1 个答案:

答案 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。