在 eclipse 中提交和推送更改后提交整个文件

Commit and Push in eclipse commits entire file as changed

我已经开始在 "Eclipse Jee Oxygen" 中使用 Git 分期。每次我对文件做一个小改动(修复一个错误)时,我都必须提交并推送。但在 git 中,整个文件显示已更改。为什么会这样?这会使在同一个存储库上工作的其他人感到困惑。

如何解决此问题以仅从 Git Eclipse 暂存视图提交和推送更改?

感谢任何帮助。

那是因为文件的 EOL 格式发生了变化。

有不同的 EOL(行尾)格式。 UNIX 使用 LF 作为换行符,windows 使用 CRLF,Mac 使用不同的东西。体面的文本编辑器识别文件的格式并在保存文件时保持这种格式(Windows 记事本不在体面的文本编辑器列表中。它在历史上把它们搞砸了......为什么?因为除了Windows??? 无论如何)。在多 OS 环境中工作,这可能是一个棘手的问题。

现在,当您在修订版中更改给定文件的 EOL 格式(有意或无意)时,对于 VCS,就像整个文件都发生了变化,这就是您所看到的。

Git 提供了一些技巧来避免这种情况发生。有一个旧的实现(我认为使用 autocrlf)非常混乱,尽管它仍然可用(这可能是通过在背后更改文件的 EOL 格式而给您带来麻烦的原因)。然后还有另一种尝试,它使用属性要好得多。一般来说,你能做的最好的事情就是告诉 git 让文件保持 原样 而不是通过将此行添加到 .git/info/attributes:

* -text

希望对您有所帮助。