假设我正在开发一个分支中的功能oldFeature
。我已经完成了提交A
并将B1
其发送给代码审查。在B1
我更改了一些现有文件但也添加了newfile.txt
.
与此同时,我开始在一个分支newFeature
(oldFeature
== HEAD
)B1
分支工作。我添加了C
, D
, E
.
同时,我得到了代码审查结果,不得不修改B1
、更改newfile.txt
和更改一些现有文件。修复后就变成了B2
。
所以为了说明它:
newFeature oldFeature
A A
B1 B2 [B1 with some fixes]
C
D
E
现在我进去了newFeature
,我想重新设置newFeature
为 haveB2
而不是B1
. 当我简单地进行变基时,由于在newfile.txt
变基的两个部分中都添加了基准,所以我有一个冲突。
我想保留oldFeature
( B2
) 中的版本。
我不能移到B1
,HEAD
因为C
, D
,E
依赖它。
我知道我可以执行以下解决方法:
git checkout --theirs
git add
- 继续变基
那么我会有这样的情况:
newFeature oldFeature
A A
B2 B2
BX
C
D
E
whereBX
或多或少B2\B1
存在于A
. 现在我可以进行交互式 rebase 和 remove BX
。
但是我的解决方法有点复杂。有没有更简单的方法来做到这一点?更简单的意思是,我要么有
newFeature oldFeature
A A
B2 B2
B2\B1
C
D
E
没有任何变基冲突,然后我可以摆脱那个B2\B1
提交,或者自动替换它们所以我得到
newFeature oldFeature
A A
B2 B2
C
D
E
使用 Git 1.8.0。