我正在尝试使用git add --patch
,我注意到它的差异与使用opendiff
生成的差异不同。
答案 0 :(得分:2)
确实存在不同的差异算法。 (并且有许多可能的差异将导致对文件的完全相同的更改 - 这是git不存储更改是如此明智的原因之一,它只在每次提交时存储树的状态:))
即使在git中,对于某些命令,您可以在两种不同的diff算法中进行选择 - 例如,尝试在某些C代码中移动函数并比较输出:
git diff
......和:
git diff --patience
后者通常更具可读性,虽然计算速度较慢。
我不确定opendiff使用什么算法,但它可能与patience diff类似?
不幸的是,我不相信git目前可以在git add -p
中使用不同的diff算法,尽管我觉得它也非常有用。有patch series here添加该功能,但似乎作者尚未发送上游功能。