差异输出之间的区别使用“git add --patch”和“filemerge”

时间:2011-06-03 15:00:29

标签: git diff

我正在尝试使用git add --patch,我注意到它的差异与使用opendiff生成的差异不同。

  1. 这是常见的吗?是否有不同的差异算法?我只是坚果吗?
  2. 假设上面是“是”,有没有办法强制git使用opendiff算法?

1 个答案:

答案 0 :(得分:2)

确实存在不同的差异算法。 (并且有许多可能的差异将导致对文件的完全相同的更改 - 这是git不存储更改是如此明智的原因之一,它只在每次提交时存储树的状态:))

即使在git中,对于某些命令,您可以在两种不同的diff算法中进行选择 - 例如,尝试在某些C代码中移动函数并比较输出:

git diff

......和:

git diff --patience

后者通常更具可读性,虽然计算速度较慢。

我不确定opendiff使用什么算法,但它可能与patience diff类似?

不幸的是,我不相信git目前可以在git add -p中使用不同的diff算法,尽管我觉得它也非常有用。有patch series here添加该功能,但似乎作者尚未发送上游功能。