在我的存储库中,我目前有这样的历史:
$ git log --oneline
<commit-id-1> Merge commit '<merged-commit-id-1>' into <branch>
<commit-id-2> Merge commit '<merged-commit-id-2>' into <branch>
...
Run Code Online (Sandbox Code Playgroud)
在哪里<merged-commit-id-1>
和<merged-commit-id-2>
我从branch
之前创建当前的另一个分支合并.现在我想以某种方式加入这些合并提交:
$ git log --oneline
<commit-id> My message about huge successful merge here...
...
Run Code Online (Sandbox Code Playgroud)
我试过了
$ git rebase --preserve-merges -i HEAD~2
Run Code Online (Sandbox Code Playgroud)
有p
和s
但得到这个错误:
Refusing to squash a merge: ...
Run Code Online (Sandbox Code Playgroud)
(我也在一个新的最简单的存储库中复制它)有没有办法绕过它?
我真正想要的是能够通过原始分支(已更改)的ID合并许多提交,同时逐步解决冲突并且不引入数十个合并提交(merge --squash
也不是一个选项,因为我需要保留历史).
例:
$ git init
$ echo 1 > 1; git add 1; git commit -m 1
$ git branch …
Run Code Online (Sandbox Code Playgroud) git ×1