1

我经历了以下情况:

我在与 . 合并时遇到了冲突git rerere enabled

我修复了冲突文件,但也必须调整其他非冲突文件。
所有触及的文件都已添加并提交。git rerere表示已记录该决议。

后来git pull --rebase=preserve重复合并冲突, git rerere 来救援。
但是,仅应用了冲突文件中的部分解决方案,其他文件中的更改未应用。
快速浏览 rr-cache 表明这些其他更改尚未记录。

git rerere 是否仅记录直接冲突文件中的更改而没有其他内容?

是否可以选择记录解决提交中所做的所有更改,而不仅仅是冲突文件?

4

1 回答 1

0

git rerere 是否仅记录直接冲突文件中的更改而没有其他内容?

是的。好吧,几乎 - 它稍微复杂一些。

是否可以选择记录解决提交中所做的所有更改,而不仅仅是冲突文件?

不,这就是“稍微复杂”部分的用武之地。rerere代码不会记录所有更改和解决方案;它只记录冲突的变化及其相应的解决方案。完全不保存非冲突位。

(注意,顺便说一句,这git rebase --preserve实际上重新创建了合并,即执行新git merge命令,正如我认为您已经观察到的那样。从中调用它对git pull过程的这一部分没有影响。)

于 2017-04-07T18:12:33.877 回答