git rerere
可以很好地存储我的冲突解决方案,并在再次出现相同冲突时自动应用它们。但是,有时我会遇到一个不同上下文的合并冲突,我不想自动合并它们。是否有一种方法可以让git rerere
记住冲突解决方案,但需要显式调用git rerere
来应用它们?为了明确起见,我不是要使用git rerere clear
或git rerere forget
,而是简单地不自动解决合并冲突,除非显式指示(如果它可以在应用之前向我显示建议的解决方案,则更好!)git rerere
可以很好地存储我的冲突解决方案,并在再次出现相同冲突时自动应用它们。但是,有时我会遇到一个不同上下文的合并冲突,我不想自动合并它们。是否有一种方法可以让git rerere
记住冲突解决方案,但需要显式调用git rerere
来应用它们?为了明确起见,我不是要使用git rerere clear
或git rerere forget
,而是简单地不自动解决合并冲突,除非显式指示(如果它可以在应用之前向我显示建议的解决方案,则更好!)我不知道如何针对特定的块不应用rerere。
你确实可以忘记文件的rerere解决方案 (在这里讨论),但不能仅针对一个块。
你需要直接处理.git/rr-cache,就像这个补丁中所提到的那样:
我们记录了以前看到的冲突及其解决方案在
$GIT_DIR/rr-cache
的子目录中,并且子目录的名称是通过哈希冲突块的“形状”计算出来的。
当稍微类似的冲突在工作树中遇到时,“git rerere
”尝试通过运行三路合并来重放记录的解决方案,以将更改应用于从先前的冲突到先前的解决方案到当前的冲突状态。
git -c rerere.enabled=false merge $branch
。 - jthill