相关疑难解决方法(0)

如果我已经开始使用rebase,如何将两个提交合并为一个?

我试图将2个提交合并为1,所以我从git准备好跟随"压缩提交与rebase".

我跑了

git rebase --interactive HEAD~2
Run Code Online (Sandbox Code Playgroud)

在生成的编辑器中,我更改picksquash然后保存退出,但是rebase因错误而失败

没有先前的提交,不能'挤压'

既然我的工作树已达到这种状态,我就无法恢复了.命令git rebase --interactive HEAD~2失败

交互式rebase已经开始

git rebase --continue失败了

没有先前的提交,不能'挤压'

git git-merge

1111
推荐指数
9
解决办法
70万
查看次数

git rebase interactive:squash merge提交在一起

我希望有一个简单的解决方案,可以在交互式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)

git merge interactive rebase squash

52
推荐指数
3
解决办法
3万
查看次数

标签 统计

git ×2

git-merge ×1

interactive ×1

merge ×1

rebase ×1

squash ×1