Git 涉及非冲突文件的 rerere 和解决方案

Git rerere and resolution covering non-conflicting files

我遇到过以下情况:

我 运行 在与 git rerere enabled 的合并过程中发生冲突。

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

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

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

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

Is git rerere only recording changes in the directly conflicting files and nothing else?

是的。嗯,差不多——稍微复杂一点。

Is there an option to record all changes done in the resolving commit, not only the conflicting file?

不,这就是 "slightly more complicated" 部分的用武之地。rerere 代码不记录 所有 更改和解决方案;它只记录 冲突的 更改及其相应的解决方案。不冲突的位根本不保存。

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