我试图将2个提交合并为1,所以我从git准备好跟随"压缩提交与rebase".
我跑了
git rebase --interactive HEAD~2
Run Code Online (Sandbox Code Playgroud)
在生成的编辑器中,我更改pick为squash然后保存退出,但是rebase因错误而失败
没有先前的提交,不能'挤压'
既然我的工作树已达到这种状态,我就无法恢复了.命令git rebase --interactive HEAD~2失败
交互式rebase已经开始
并git rebase --continue失败了
没有先前的提交,不能'挤压'
我希望有一个简单的解决方案,可以在交互式rebase期间将两个合并提交压缩在一起.
我的存储库看起来像:
X --- Y --------- M1 -------- M2 (my-feature)
/ / /
/ / /
a --- b --- c --- d --- e --- f (stable)
Run Code Online (Sandbox Code Playgroud)
也就是说,我有一个my-feature最近合并过两次的分支,中间没有真正的提交.我不只是想重新定义my-feature分支,因为它是它自己的已发布分支,我只想将最后两个合并提交压缩成一个(还没有发布那些提交)
X --- Y ---- M (my-feature)
/ /
/ /
a --- ... -- f (stable)
Run Code Online (Sandbox Code Playgroud)
我试过了:
git rebase -p -i M1^
Run Code Online (Sandbox Code Playgroud)
但我得到了:
Refusing to squash a merge: M2
Run Code Online (Sandbox Code Playgroud)
我最后做的是:
git checkout my-feature
git reset --soft HEAD^ # remove the last commit (M2) but keep the changes …Run Code Online (Sandbox Code Playgroud)