当基于分支自己重新建立分支以通过将提交压缩在一起来清理提交时,我的rebase陷入了一个循环,不确定如何破坏它。这是针对我正在处理的每个分支,而不仅仅是专门针对的一个分支。
例如说我有一个分支 my-branch ,其中有三个提交
commit 1
commit 2
commit 3
在我的终端上,我写git rebase -i origin my-branch
这带我进入了交互式git(以我的Sublime文本为例)
在这里,我看到所有提交,并将最后一个提交更改为squash,这样我只有提交1和2:
p commit 1
p commit 2
s commit 3
从这里,我看到另一个交互式窗口,在其中删除了提交3的提交消息,仅保留了提交2。
这一切似乎都在起作用,但是现在陷入了循环。
例如,在我的终端上,它位于重新启动的STEP 3/3上,然后我执行rebase --continue
,它继续进行到STEP 4/4(无任何更改),再次rebase --continue
,进入STEP 5/5,依此类推无需实际离开基准。
我被迫使用rebase --abort
并且我的提交不被压榨。
答案 0 :(得分:1)
如果您想压缩到最后的rebase,则可以完全跳过使用rebase -i和以下技巧:
git checkout my-feature
git merge master # merge with the branch you want to rebase onto
# don't worry, that will go away with the following steps
git reset --soft master # move branch pointer to master, all changes between your branch and master (theoretically speaking, all changes related to your feature _only_ will be in index
git commit -m "My feature"
就是这样。