Eclipse EGit和命令行上的git显示不同的状态

3

在我的Git仓库中,我可以执行git status命令,它会告诉我一切都是最新的:

[598] : git status
# On branch master
nothing to commit (working directory clean)

如果我使用EGit连接到存储库并在Eclipse中进行同步,我会得到以下结果:
某种程度上,EGit认为许多文件已被删除并以相同的名称重新添加。由于git状态返回无需提交任何内容,因此我希望在这里得到一个空窗口。
为了完整起见:这是在OSX 10.7上,但我也在Windows 7 Pro上看到了同样的问题。
这里发生了什么?有什么想法吗?
1个回答

3

您在此处使用了非7位字符(umlaut o)。

很抱歉,这会导致问题。您需要重新编码树以获取utf8文件名。即使这样做,也无法完全解决bug。

有关git部分,请参见此问题,而有关egit部分,请参见此bug


Java 默认支持 Unicode,除非代码特别奇怪,否则不会破坏这个特性。 - Mahmoud Al-Qudsi
@MahmoudAl-Qudsi 这是 c git 兼容性问题。c git 从不将文件名保存为“字符串”,它只是一个字节数组。这就是 Unix 中操作系统级别的文件操作方式。然而,Java 使用字符串作为文件名。 - J-16 SDiZ
@BetaRide,你看了链接问题中的答案吗?它有两个链接指向你的答案。 - J-16 SDiZ
是的,我阅读了链接的问题。它们涉及Windows Git客户端。提到的新选项处理提交注释的编码和错误路径输出。就我所知,这些都与此无关。我认为OSX Git客户端工作正常,但基于JGit的EGit在处理特殊字符时存在问题。 - BetaRide
你需要重新编码以使其与EGit兼容。你现有的存储库是幻想,因为一旦你尝试使用其他语言环境(比如俄语版Windows、韩语版Linux等),它就会崩溃。 - J-16 SDiZ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接