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

时间:2011-11-22 13:00:03

标签: git egit

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

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

    enter image description here

  2. 与“Git index中的文件”比较,您可以看到没有什么不同

    enter image description here

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

    enter image description here

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

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

8 个答案:

答案 0 :(得分:53)

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

(“核心”部分)

key: autocrlf
value: false

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

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

答案 1 :(得分:42)

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

我永远这样说过:

git config --system core.autocrlf false

要摆脱差异和补丁视图中的CR突出显示,请使用:

git config --system core.whitespace cr-at-eol

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

答案 2 :(得分:15)

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

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

$ git config core.filemode false

答案 3 :(得分:8)

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

Eclipse Next File Line Delimiter settings

答案 4 :(得分:4)

您可以在Compare / Patch下忽略与Eclipse设置的空白差异。 首选项 - >常规 - >比较/补丁,您可以在右侧找到“忽略空格”,然后选择此选项。

答案 5 :(得分:1)

我在Eclipse git commit中也遇到了同样的问题,显示了这个问题

一次修改后的文件,即使它在未分段的更改部分中显示了文件,最终还是从文件中删除了更改。

解决方案:
Eclipse->窗口->首选项->团队-> Git->配置->用户设置(右侧标签)

点击添加条目

Key  : core.autocrlf
Value: true

单击确定,然后单击应用->确定 刷新“ Git Staging”选项卡,或选中“团队->提交”选项。现在它将仅显示确切的更改。

答案 6 :(得分:0)

我遇到了同样的问题,所提出的解决方案都没有起作用。我要关闭"replicate an ASP.Net website in classic ASP"功能,安装最新版本的egit和git。存储库的行尾和本地文件都匹配。

问题是由.gitattributes中的条目引起的:

autocrlf

因此,我可以:

  • 删除属性
  • 提交更改

但是也起作用的是进入命令行并键入

  

git reset --hard

然后刷新日食。

答案 7 :(得分:-3)

一般 - >工作区。选择文本编码UTF-8