小编use*_*198的帖子

如何加入最后N个合并提交到一个?

在我的存储库中,我目前有这样的历史:

$ 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)

ps但得到这个错误:

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

9
推荐指数
1
解决办法
896
查看次数

标签 统计

git ×1