【问题标题】:Eclipse EGit and git on command line show different status命令行上的 Eclipse EGit 和 git 显示不同的状态
【发布时间】:2012-05-04 15:52:36
【问题描述】:

在我的 git 存储库中,我可以执行 git status,它告诉我一切都是最新的:

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

如果我使用 EGit 连接到存储库并在 Eclipse 中进行同步,我会得到:

不知何故,EGit 认为许多文件已被删除并以相同的名称读取。由于 git status 没有返回任何提交,我希望在这里得到一个空窗口。

为了完整性:这是在 OSX 10.7 上,但我在 Window 7 Pro 上也看到了同样的问题。

有什么想法吗?

【问题讨论】:

    标签: eclipse git egit


    【解决方案1】:

    您在这里使用的是非 7 位字符(元音变音 o)。 抱歉,这会造成麻烦。

    您必须为 utf8 文件名重新编码树。即使您这样做,这也不是没有错误的。

    git 部分见this question,egit 部分见this bug

    【讨论】:

    • Java 默认不支持 unicode 吗?破解它的代码有多奇怪?
    • @MahmoudAl-Qudsi 这是 c git 兼容性问题。 c git 从不将文件名保存为“字符串”,它只是一个字节数组。这就是操作系统级别的文件操作在 unix 中的工作方式。然而,Java 使用字符串作为文件名。
    • @BetaRide 您是否阅读了链接问题中的答案?它有两个指向您的答案的链接。
    • 是的,我阅读了链接的问题。他们处理 windows git 客户端。提到的新选项处理提交 cmets 的结束和错误的路径输出。据我了解,这与这里无关。我认为 osx git 客户端工作正常,但 EGit(基于 JGit)存在特殊字符问题。
    • 您必须对其重新编码以使其与 egit 兼容。您当前的存储库可以正常工作是一种错觉——只要您尝试另一个语言环境(比如说,俄罗斯版的 windows、韩国版的 linux 等),它就会崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2012-08-31
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多