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

在进行git合并时,应该在什么情况下使用策略选项标志?(耐心|最小|直方图|迈尔斯),git,merge,git-merge,Git,Merge,Git Merge,我想得到一个高质量的差异,我不担心它需要多长时间,例如 git merge --strategy-option=diff-algorithm=minimal develop ,不清楚哪种方法最适合于哪种情况 默认情况下,myers基本贪婪差异算法。目前,这是 默认 最小值花费额外的时间来确保尽可能最小的差异 生产 耐心生成补丁时使用“耐心差异”算法 直方图此算法将耐心算法扩展为“支持” 低发生率常见元素” 有一个问题 直方图算法是否总是优于耐心算法,因为它扩展了它 最小算法是否比默认算法

我想得到一个高质量的差异,我不担心它需要多长时间,例如

git merge --strategy-option=diff-algorithm=minimal develop
,不清楚哪种方法最适合于哪种情况

  • 默认情况下,myers基本贪婪差异算法。目前,这是 默认

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

  • 耐心生成补丁时使用“耐心差异”算法

  • 直方图此算法将耐心算法扩展为“支持” 低发生率常见元素”

有一个问题

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

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

Hmm-
git merge--strategy option=minimal develop
dons似乎不起作用,minimal未被视为策略。我认为您将
git diff
策略与
git merge
策略及其相关选项混淆了。这些是不同的东西…@twalberg-我相当肯定这些选项也与git merge命令共享。您需要阅读手册中标题为“合并策略”的部分。如果要为默认的递归合并策略指定不同的
git diff
策略选项,它们的语法将是
git merge--strategy option=diff algorithm=minimal
,例如,而不是
git merge--strategy option=minimal
。。。“耐心”似乎是一个例外,但其他人本身并不是有效的战略选择。。。不完全确定
git merge--strategy option=patience
git merge--strategy option=diff algorithm=patience
是否完全等效…@twalberg-谢谢!我将调整我的问题。是否有人讨论过将其作为git的默认设置?我很想看到反对的论据。