2011-11-22 110 views
42

我使用eclipse egit和github。我发现一些奇怪的东西,我没有改变任何东西,但egit标记为“改变”的文件。查看图片:没有什么变化,但eclipse egit标记文件已更改

  1. “的run.bat” 被标记为文件 “改成”

    enter image description here

  2. 与 “Git的索引文件” 进行比较,就可以看到没有什么不同

    enter image description here

  3. 与“在头文件”进行比较,就可以看到没有什么不同既不

    enter image description here

我的朋友使用Mac和我用windows,但是大家都配置混帐为“提交UNIX lineend” ..我也检查了我的源和头部的lineend,它们是相同的(我配置的git将它们转换为 “\ r \ n” 拉时)

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

+1

检查行结束符 - CR,CR-LF – kan

+0

“我在配置git时将它们转换为”\ r \ n“:这应该是原因吧,不是吗? – VonC

+1

看起来你在一个文件中混合了行结尾。不知道它将如何工作。自动转换对我来说是难以预料的,我通常禁用它... – kan

回答

37

的第一件事情我已经在Git中有问题与。

我这样永远说:

git config --system core.autocrlf false 

为了摆脱CR的diff和patch意见强调,用途:

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

如果你与他人分享您的计算机,更换“ - '系统'与' - 全球'。

+0

谢谢,它帮助很大! – Freewind

+12

没有帮助我。您提到的更改在使用git命令行时引入,但不适用于EGit。 – Ztyx

+3

@Ztyx请参阅我的答案,EGit解决方案。 –

46

Eclipse的首选项/团队/混帐/配置/用户设置

( “核心” 部分)

key: autocrlf 
value: false 

的关键应该已经存在,所以只需要修改的值。

如果创建一个新的密钥,然后使用core.autocrlf

+0

这帮了我。谢谢! –

+0

这不适合我。用户设置选项卡中显示的* Location *属性是我的全局gitconfig('C:\ Users \ William \ .gitconfig')并具有所有正确的设置。但是,'git commit -m'可以正常工作,而Eclipse的* Commit *选项会对我的行结束符进行操作。 – wchargin

+1

这帮了我,但我不得不删除回购,并再次导入它。 –

11

作为后续行动,我只是碰到了同样的问题,另一个原因,例如:It检测的所有文件,改变的是至少在Cygwin的混帐一起使用时,POSIX文件权限问题。

下面将解决这个问题;但需要记住的是,这也意味着他们将被忽略,那么:

$ git config core.filemode false

+3

非常感谢!这也需要关闭/打开项目。 – Valakyr

+0

这也是我的问题。现在我能够修复文件的权限并提交。 – jlh

+0

这也是我的问题。非常感谢你,过去的一小时寻找解决方案已经收到了回报! –

5

为换行日食的具体问题,你也可以在Eclipse中更改首回车符,你可以改变新的文本文件行分隔符从Windows语法到Unix,这应该有所帮助。

Eclipse Next File Line Delimiter settings

+0

是的,解决了它,而无需触摸任何与git相关的任何东西 – ccleve

+1

这是autocrlf设置为false的正确答案 –

+0

更改**只是**此偏好有所帮助,但必须在更改设置后重新启动Eclipse。顺便说一句我在Windows 10上使用Eclipse时遇到了这个问题,并且在Windows-Eclipse上报告的文件被更改了,最初在Ubuntu上进行了修改,并推送到远程仓库并在Windows计算机上运行。谢谢。 –

-3

在常规 - >工作区。选择文本编码UTF-8

+1

这将如何帮助eclipse/git中的行结束问题? –

+0

你能否详细说明一下? –

+1

你看过这个问题和答案吗?编码如何与这个问题有关? –

2

您可以忽略Compare/Patch下Eclipse设置的空白区别。 首选项 - >常规 - >比较/修补程序,您可以在右侧找到“忽略空白区域”,然后选择此选项。

相关问题