繁体   English   中英

如何在 git add 交互式补丁模式中获得更好的帅哥?

[英]How to get better hunks in git add interactive patch mode?

我经常使用git add -p somefile以交互方式仅git add -p somefile给定文件中的部分。 但是,如果文件有更复杂的更改,则默认差异会出错,交互式补丁命令提供的大块也会出错。

git diff命令有许多选项来改进或自定义 diff 输出,包括非常有用的--anchored=<text> ,但是有什么方法可以从git add -p获得更好的大块头吗?

您可以尝试以下操作:

  • 定义一个定制的大块头适合你的情况下,提到这里

  • 尝试不同的差异算法通过将其作为一个独立的配置参数git add -p提到这里

    git -c diff.algorithm=<algo-name> add -p

    根据 git docs可用的差异算法,

-diff-algorithm ={耐心|最小|直方图|迈尔斯}

选择差异算法。 变体如下:

default , myers基本的贪心差异算法。 目前,这是默认设置。

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

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

直方图该算法将耐心算法扩展为“支持低出现的常见元素”。

  • 使用git-gui手动选择要提交的行/块,如此此处所述请参阅下面工具的屏幕截图

git-gui

从 git 文档

diff.indent启发式
将此选项设置为 true 以启用实验性启发式方法,这些启发式方法可以移动差异块边界以使补丁更易于阅读。

然而,基于

使用 Git 2.25(2020 年第一季度),您甚至不必再指定 --indent-heuristic(因为它现在是很长一段时间的默认设置)。

,此参数默认设置(为 true)。 因此,如果有帮助,请尝试将其设置为 false。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM