使用Git的最小差异算法生成补丁。

3

我刚刚在一个非常大的文件中删除了大量内容。当我将更改提交到文件时,Git的默认差异算法认为我已经移动了一堆东西,而不是仅删除行(该文件有很多重复行)。

以下是两种不同差异算法的输出:

git diff --stat
1 file changed, 4373 insertions(+), 9192 deletions(-)

git diff --stat --minimal
1 file changed, 4819 deletions(-)

有没有一种方法可以使用--minimal设置进入补丁模式,以便我可以将其分成多个提交,以减少对这个文件的感知印记?

编辑:即使经过了所有这些努力来减少我的足迹,在使用Myers(默认)算法跨多个提交进行差异比较时,仍然显示插入...我希望这不会发生,但现在似乎我已经浪费了很多时间来学习关于Git的一些新东西。

也许这是可能的,也许不是。作为备选方法,您可以存储这些更改并手动重放您想要提交的更改子集。 - Nayuki
我曾经考虑过这个,但唯一的不方便之处是每次应用存储时都会产生冲突;而且总体上,这些行删除根本不连续。 - Cody Stott
1个回答

4

显然,修补程序模式使用您配置的默认差异算法。 使用以下命令更新我的配置可以获得所需的结果。

git config --global diff.algorithm minimal


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接