在进行git合并时,策略选项标志应该用于什么情况?(耐心|最小|直方图|迈尔斯)

Rob*_*ert 5 git merge git-merge

我希望获得高质量的差异,我不担心需要多长时间,例如

git merge --strategy-option=diff-algorithm=minimal develop
Run Code Online (Sandbox Code Playgroud)

从文档中,不清楚哪一个最适合哪种情况?

  • 默认情况下,迈尔斯基本的贪心差异算法.目前,这是默认值.

  • 最小花费额外的时间来确保产生尽可能小的差异.

  • 耐心在生成补丁时使用"耐心差异"算法.

  • 直方图该算法将耐心算法扩展为"支持低发生的共同元素".

另一个答案中有耐心算法摘要.

  • 直方图算法是否总是比耐心算法更好,因为它扩展了它?
  • 最小算法是否优于默认算法,因为它"花费额外时间"?
  • --strategy-option=patience--strategy-option=diff-algorithm=patience相同呢?

Bra*_*hen 3

您应该始终使用直方图而不用担心它。绝大多数情况下,所有算法都会给出完全相同的结果,但偶尔会出现一个 XML 文件或经过大量编辑的 C 文件,其中包含大量大括号,其中 myers 和 minimal 会合并无意义的重复部分。文件,并且有一个完全损坏且无法使用的输出,冲突部分两侧都有不相关的代码部分。耐心和直方图都可以很好地处理这些情况,但直方图运行得更快。由于直方图既是最好也是最快的算法,因此没有太多理由使用其他算法。