没有任何改变,但是eclipse egit将文件标记为已更改

Fre*_*ind 54 git egit

我正在使用eclipse egit和github.我发现一些奇怪的东西,我没有改变任何东西,但是egit将文件标记为"已更改".看图像:

  1. 文件"run.bat"被标记为"已更改"

    在此输入图像描述

  2. 与"Git索引中的文件"相比,您可以看到没有什么不同

    在此输入图像描述

  3. 与"HEAD中的文件"相比,您可以看到没有任何不同

    在此输入图像描述

我的朋友使用mac而我使用windows,但是我们都将git配置为"commit unix lineend"..我还检查了我的源和HEAD的lineend,它们是相同的(我配置了git将它们转换为"\ r \"\n"拉的时候"

哪里错了?这是Egit的错误吗?

Mar*_*ark 55

Eclipse首选项/团队/ Git /配置/用户设置

("核心"部分)

key: autocrlf
value: false
Run Code Online (Sandbox Code Playgroud)

密钥应该已经存在,所以只需要编辑值.

如果要创建新密钥,请使用core.autocrlf.

  • 如果密钥不存在,请使用**Add Entry ...**,其中`core.autocrlf`为密钥,'false`为value,这也会触发**core**部分的创建. (2认同)

Ada*_*ruk 44

我在Git中遇到的首要问题之一.

我永远这样说过:

git config --system core.autocrlf false
Run Code Online (Sandbox Code Playgroud)

要在diff和patch视图中摆脱CR突出显示,请使用:

git config --system core.whitespace cr-at-eol
Run Code Online (Sandbox Code Playgroud)

如果您与他人共享计算机,请将"--system"替换为"--global".

  • 没帮我.您提到的更改在使用git命令行时启动,但不适用于EGit. (12认同)
  • 对于EGit解决方案,@ Ztyx请看我的答案. (3认同)

Axe*_*ler 15

作为一个后续工作,我刚刚遇到同样的问题,EGit检测所有文件更改的另一个原因是至少与Cygwin的git一起使用时POSIX文件权限问题.

以下将解决这个问题; 但请记住,这也意味着它们被忽略了:

$ git config core.filemode false

  • 非常感谢!这也需要关闭/打开项目. (3认同)

Mar*_*cus 8

对于换行的eclipse特定问题,您还可以在Eclipse Preferences中更改返回字符,您可以在其中将New text file line delimiter从Windows语法更改为Unix,这应该有所帮助.

Eclipse下一个文件行分隔符设置


小智 8

您可以在比较/补丁下忽略 Eclipse 设置中的空白差异。Preferences-->General-->Compare/Patch,你可以在右边找到“忽略空白”,选择这个选项。


小智 5

我也有同样的问题来自 Eclipse git commit 显示了这个问题

一旦修改文件并最终从文件中删除更改,即使它在Un staged changes 中显示文件部分。

解决方案:
Eclipse -> Window -> Preferences -> Team -> Git -> Configuration -> User Settings(右侧选项卡)

点击添加条目

Key  : core.autocrlf
Value: true
Run Code Online (Sandbox Code Playgroud)

单击“确定”,然后单击“应用”->“确定”刷新“Git Staging 选项卡”或检查“团队”->“提交”选项。现在它只会显示确切的变化。