3

我将Eclipse JunoEGit 2.0一起使用,但遇到以下问题:

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

如果我Compare With -> HEAD Revision在 Eclipse 中对这些文件中的任何一个进行操作,我看不出有任何区别。但是,当我这样做时,我会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 文件的问题。

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

提前致谢!

4

2 回答 2

2

从 EGit 2.0 开始,根据bug 301775,EGit 支持core.autocrlf.

它过去在创建 repo 时将 autocrlf 设置为 false,但bug 382067修复 6316 解决了这个问题,这意味着它依赖于您在本地 Git 安装中的本地或全局设置(如 msysgit)。
正如我之前所说,这应该始终设置为 false

如果您需要对某些文件的 EOL 进行细粒度控制,请使用core.eol属性

于 2012-07-05T06:32:33.237 回答
2

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

EGit 文档 > EGit 用户指南 >可以在此处找到的入门说明:

指出系统范围的配置

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

如果您在安装适用于 Windows 的 Git 时从命令行提示符中选择了使用 Git 的选项之一,那么系统范围设置的位置将使用路径填充,一切都很好。如果没有,请使用浏览按钮找到 Git 的安装位置,例如 C:\Program Files(x86)\Git。

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

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

正如我们所看到的,EGit 寻找 git 配置文件来了解“autocrlf”是如何被准确配置的。但在 Windows 下似乎找不到所有这些。

该命令将向我们展示 git 使用的配置:

git config --list --show-origin

在 Eclipse 中,我们可以在Windows > Preference > Team > Git > Configuration中看到 git 的配置。这是一个问题:Eclipse 没有看到位于C:\ProgramData\Git文件夹中的配置文件,其中定义了 'autocrlf' 选项。

我最终复制了“autocrlf”值(在我的情况下是真的)

[核]

autocrlf = 真

在位于主目录的用户“.gitconfig”文件中,一切正常。

另请参阅Windows 上的 git - 配置文件的位置

于 2018-04-19T08:38:09.260 回答