很久以后,我再次陷入了这个问题。每次我解决这个问题并继续前进,但这次我尝试了解根本原因并修复它,因为对我有用的修复不在这个问题的答案中,因此添加了详细信息部分:
我EGit
在 Eclipse 中使用插件,问题与OP相同- Eclipse 比较工具没有突出差异,而是整个块,好像整个文件已更改。
让我们先了解一下这个问题,因为我知道这与CRLF
vs LF
eol 有关,所以首先检查并启用可见性:
Eclipse -> 首选项 -> 文本编辑器 -> 显示空白字符
在上面点击配置可见性。
现在,正如您在上图中看到的突出显示的那样,选中Trailing下的复选框并反对Carrier Return (CR)
和Line Feed (LF)
。
应用 - 保存并关闭。现在就我而言,文件看起来像这样:
这很明显,对我来说,我有CRLF
像 eol 这样的窗口,这进一步证实了我没有core.autocrlf
设置,true
因此默认情况下它实际上没有尝试对我的 EOL 分隔符做任何事情(如本例中所预期的那样)。false
Git
直到这个阶段,比较工具将整个文件显示为已更改。
现在,着手解决对我有用的问题。
因为,我想在 IDE 领域得到这个修复,所以我首先将特定文件转换为 Unix 分隔符:
然后我的文件变成了 LF (Unix delimiter) eol :
并且比较工具开始突出显示增量。
因此,假设问题是由于CRLF
(窗口样式)eol 和 Eclipse 比较器无法突出显示增量而不是整个文件。
然后,而不是将每个文件或包更改为 Unix delimiters 。我在 Eclipse->Preferences -> Workspace 中更新了
通过这种方式,eclipse 会处理新文件到 的行尾Unix
,以便文本文件以不特定于 Windows 操作系统的格式保存,并且最容易在异构开发人员桌面之间共享。毕竟,这个比较工具一直很愉快地工作。
希望这可以帮助。