是否可以使用“最小”算法进行交互式添加?

时间:2016-05-29 12:12:34

标签: git diff git-add

在从快照计算变更集时,Git并不总是正确选择大块边界。 git diff有一个--diff-algorithm选项,允许在这方面进行一些调整; git diff --minimal有时会比单独git diff提供更好的结果。

是否有办法为git add -p(基本上以交互方式显示diff帅哥)获得相同的优化变更集布局?它似乎不允许--diff-algorithm选项。

1 个答案:

答案 0 :(得分:6)

TL; DR版本

git -c diff.algorithm=minimal add -p

(需要Git版本1.8.4或更新版本。)

详细信息

在最后一项研究之后将其从评论转移到答案:

自Git 1.8.4版以来,交互式add perl脚本(实现git add -p)遵循git配置中的diff.algorithm设置。这是commit 2cc0f53(2013年6月12日)John Keeping (johnkeeping)的结果 Junio C Hamano -- gitster --于2013年6月27日commit 91fc159合并)

  

当以交互方式进行分段时,有时使用一个很有用       另一种差异算法,它将变化分成更多       逻辑方式。这是不可能的,因为管道命令       通过add调用 - 交互式忽略“diff.algorithm”配置       选项(因为他们应该)。

     

由于add - interactive是一个瓷器命令,它应该尊重这一点       配置变量。要做到这一点,让它读取diff.algorithm和       将其值传递给底层的diff-index和diff-files调用。

     

此时,不要向“git add”,“git reset”或“git”添加选项       checkout“(所有这些都可以调用git-add - interactive)。如果是用户       想要覆盖他们可以使用的命令行上的值:

   git -c diff.algorithm=$ALGO ...

commit e5c2909修正案(2013年6月23日)Junio C Hamano (gitster);修正案也在1.8.4。)