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



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

有没有一种方法可以为git add -p(基本上以交互方式显示diff大块)获得相同的优化变更集布局?它似乎不允许使用--diff-algorithm选项。

TL;DR版本

git -c diff.algorithm=minimal add -p

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

详细信息

在最后一点研究之后,将此从评论转移到答案:

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

当以交互方式暂存大块时,有时使用另一种diff算法,将更改拆分为块逻辑方式。这是不可能的,因为卫浴命令由add调用--interactive忽略"diff.algorithm"配置选项(正如他们应该做的那样)。

既然add-interactive是一个瓷器命令,它应该尊重这一点配置变量。要做到这一点,请使其读起来不同。算法和将其值传递给底层的diff索引和diff文件调用。

此时,不要将选项添加到"git add"、"git reset"或"gitcheckout"(所有这些都可以调用gitadd——interactive)想要覆盖他们可以使用的命令行上的值:

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

(Junio C Hamano(gitster)在提交e5c2099(2013年6月23日)中进行了修复;修复也在1.8.4中)。

最新更新