我的 git 树中有以下情况:
1 -- 2 -- 3 -- 4 <-- master
\ \
5 -- 6 -- 7 -- 8 -- 9 <-- feature
我想 rebase 和 squash 功能中的所有内容,以便我可以通过一次提交添加的功能来推进 master。
由于提交 7 已经是解决所有冲突的合并,因此我尝试了以下操作:
git rebase -i -p master
这里给我的唯一选项是提交 7、8 和 9。“有道理”,我想,“因为合并已经包含 5 和 6,它们可以被丢弃”。我继续在一次提交中压缩 7、8 和 9,我们称之为“789”。(我知道,我是创意型的。)
在此之后,我的树看起来像这样:
1 -- 2 -- 3 -- 4 <-- master
\
5 -- 6 -- 789 <-- feature
5 和 6 在同一个分支中的存在让我感到困惑,但同样,由于它们已经包含在 7 中(现在在 789 中),我可以丢弃它们。
所以我git rebase -i master
又一次,这次我丢弃了 5 和 6。
但是,这里和那里发生了冲突,所以我放弃了整个事情。
我目前处于那个阶段,但我的远程分支尚未更新,所以我不妨重置为原始状态。
哪些是正确的步骤,可以让我到达我想要的位置,而无需手动解决所有合并冲突?