【发布时间】:2014-07-14 11:21:28
【问题描述】:
我可以告诉 Git 重新使用现有合并提交中的冲突解决方案吗?我在提交时已重新禁用。新的合并提交在合并的“我们”一侧包含一些额外的提交(但它们不应引入新的冲突,因为它们修改了一组不同的文件)。
例如,采用以下 DAG:
m [master] Add new stuff
*
| o [old-master] Merge branch A (conflicts)
|/a [branch A]
n *
* *
*/
*
现在,我想做的是将提交 m 和 m^ 带入分支 old-master (然后将其设为新的主节点)。我不想简单地将master 合并到old-master,因为它会创建一个新的合并提交(尽管没有冲突)。我想以m 和a 作为父母重新创建提交o。
新的 DAG 应如下所示:
p [old-master] Merge branch A (same conflict resolution as old commit o)
/|
m | [master] Add new stuff
* |
| a [branch A]
n *
* *
*/
*
我不介意使用 rerere,如果我之后可以告诉它记录现有合并提交的分辨率 (o)。
【问题讨论】:
-
@jthill:我不认为另一个问题试图达到同样的目的。他们没有重新进行有冲突的合并,他们只是重新进行了后来的合并(并且没有冲突)。
-
是的,但我想用一个新的提交
n'替换n,其中包括新的提交但具有相同的冲突解决方案(o和p在我的 ASCII DAG 中) -
对不起,我因为误读了自己的代码而没有事先做好宣传而付出了代价。 Is it clearer now what's going on there? 但是如果 rerere 是一个选项,只需打开 rerere 并重做以前的分辨率显然会更好。
标签: git merge merge-conflict-resolution git-rerere