假设我遇到这样的情况:
a -- b -----------------c -- d -- e <-- Master
f ------------l <-- Branch1
/
g -- h -- i <-- Branch2
其中i
通过以下方式与f
合并
git merge --no-ff
好吧,现在我想rebase
Branch1
到master
.
如果我使用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
在网上查看(包括堆栈溢出),我找不到任何有用的信息。
解决方案
git rebase
-p
选项旨在解决此问题。
这应该有效:
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
相结合通常不是一个好主意