1

假设我有这样的情况:

a -- b -----------------c -- d -- e   <-- Master
      \
       f ------------l                <-- Branch1
        \           /
         g -- h -- i                  <-- Branch2

通过使用与Wherei合并f

git merge --no-ff

好了,现在我要到rebase了。Branch1master

如果我使用git rebase master Branch1结果是:

a -- b -- c -- d -- e                     <-- Master
                     \
                       f -- g -- h -- i   <-- Branch1

它刚刚合并,忽略了我以前--no-ff的 .

问题

有类似的指令git rebase --no_ff ...吗?

我想要实现的是:

a -- b -- c -- d -- e                   <-- Master
                     \
                      f ------------l   <-- Branch1
                       \           /
                        g -- h -- i     <-- Branch2

在网上看(包括stackoverflow)我找不到任何有用的信息。

4

1 回答 1

1

解决方案

-p选项git rebase旨在解决此问题。

这应该有效:

git rebase -p master Branch1

来自git rebase -h

-p, --preserve-merges
                      try to recreate merges instead of ignoring them

注意事项

感谢@andreee 指出这些问题,记录在git rebase --help

  • 不保留合并冲突解决方案或对合并提交的手动修改。
  • 结合通常不是一个好--preserve-merges主意--interactive
于 2019-04-12T13:30:07.520 回答