使用EGit在某些文件中更改换行符

时间:2012-07-04 21:08:02

标签: eclipse egit

我正在使用 Eclipse Juno EGit 2.0 ,我遇到以下问题:

我刚刚使用EGit克隆了一个相当大的项目,我没有编辑任何文件,我有一些文件需要提交。如果我使用git status检查存储库状态,我将这些文件视为未分阶段的修改。

如果我在eclipse中Compare With -> HEAD Revision执行任何这些文件,我认为没有任何区别。但是,当我git diff时,我会看到这样的事情:

diff --git a/PortalPlatform/WebContent/WEB-INF/fragment/someFile.jsp b/PortalPlatform/WebContent/WEB-INF/fragment/someFile.jsp
index f883dba..811ad83 100644
--- a/PortalPlatform/WebContent/WEB-INF/fragment/someFile.jsp
+++ b/PortalPlatform/WebContent/WEB-INF/fragment/someFile.jsp
@@ -34,7 +34,7 @@
                                    </c:forEach>
                            </select>
                    </c:if>
-                       <div><a href="reprintLastReceipt"><fmt:message key="label.link" /></a></div>
+                       <div><a href="reprintLastReceipt"><fmt:message key="label.link" /></a></div>^M
            </fieldset>
            <div class="widgetBut">
                    <a class="btn primary submit" href="#"><span><fmt:message key="button.reprint" /></span></a>

它没有影响特定的文件类型,我遇到了.java,.jsp,.css,.properties和.xml文件的问题。

为什么我只在某些文件中的换行符中获得这些更改?我该如何解决?

提前致谢!

2 个答案:

答案 0 :(得分:2)

自EGit 2.0起,根据bug 301775,EGit支持core.autocrlf

用于在创建存储库时将autocrlf设置为false,但bug 382067fix 6316负责处理,这意味着它依赖于本地Git安装中的本地或全局设置(像msysgit) 正如我之前所说,should always be set to false

如果您需要对某些文件的EOL进行细粒度控制,use core.eol attribute

答案 1 :(得分:1)

有点老问题,但仍然有人可能有问题(就像我一样)。

EGit文档&gt; EGit用户指南&gt;可以找到here状态的<使用入门

  

指出系统范围的配置

     

如果您使用Git for Windows作为EGit的伴侣,请确保EGit知道Git的安装位置,以便它可以找到“系统范围设置”,例如如何设置core.autocrlf。转到设置并在Team&gt; Git&gt; Configuration下查看,然后在System Settings选项卡下查看。

     

如果您在安装Git for Windows时选择了其中一个选项以使用命令行提示符中的Git,那么系统范围设置的位置将填入路径并且一切正常。如果没有,请使用“浏览”按钮找到Git的安装位置,例如: C:\ Program Files(x86)\ Git。

     

此建议也适用于其他Git包装的用户,例如Git在Cygwin或TortoiseGit下。

     

非Windows用户理论上应检查此设置,但系统范围的设置通常不在非Windows平台上使用。

正如我们所看到的,EGit会查找git配置文件以了解'autocrlf'是如何精确配置的。但是在Windows下,它似乎找不到所有这些。

此命令将向我们显示配置git使用的内容:

  

git config --list --show-origin

我们可以在 Windows&gt;中看到Eclipse中考虑了git的配置。偏好&gt;团队&gt; Git&gt;构造即可。这是一个问题:Eclipse没有看到位于 C:\ ProgramData \ Git 文件夹中的配置文件,其中定义了'autocrlf'选项。

我最终重复了'autocrlf'值(真实 - 在我的情况下)

  

[芯]

     

autocrlf = true

位于主目录中的用户'.gitconfig'文件中的

,并且每件事都运行良好。

另见git on Windows - location of configuration files