有没有任何缺点,以启用git rerere?
我读过关于git的rererefunction的各种东西,我正在考虑启用它。 但是我还没有看到任何人提到使用它时可能出现的问题。 我必须假设有一个缺点,或者它可能会默认启用。 那么启用rerere有什么缺点吗? 有什么潜在的问题会导致不会发生?
如果你不正确地做了一个合并,然后丢弃它,那么再次进行“相同”的合并,它会再次不正确。 不过,您可以忘logging制的分辨率。 从文档 :
git rerere forget <pathspec>
这会重置logging在
<pathspec>
的当前冲突的冲突解决<pathspec>
。
小心使用它在特定的path; 你不想在任何地方吹走所有录制的分辨率。 ( forget
没有参数已被弃用 ,以免这样做,除非你inputgit rerere forget .
来明确地请求它。)
但是如果你不这样做,你可能会很容易把这个不正确的合并放到你的历史中。
正如JC Hamano在他的文章中提到的那样,
- Rerere记得你是如何select解决冲突的地区的;
- Rerere还记得你是如何触及冲突地区以适应语义变化的;
- 即使您合并了两个不同内容的分支,Rerere也可以重用先前的分辨率 。
即使长期使用的人也往往没有注意到最后一点。
因此,如果您激活的内容过于宽泛,您可能会因为最后一点而导致令人惊讶或混乱的合并分辨率。
我有全球启用。 我真的没有注意到任何问题,而且通常似乎让我的生活更轻松。
我select了一个只包含二进制文件的提交(在gitk中)。 Cherrypick由于冲突而失败(这是一件很自然的事情),我解决了保持樱桃select的冲突。 后来我又惊奇地发现,在另一个重新启动的分支,我的dll没有performance出来 – 只是发现他们没有被纳入rebase,因为(我猜测)自动解决冲突。 所以这是我遇到的唯一情况(有可能是完全一致的)的行为。