Git的字符编码与西班牙字符

问题描述 投票:19回答:2

我创建了从现有文件的存储库。该组文件里面,是一个名为“español.gif”。现在,每次我做

$ git status

我收到一个错误:

$ path/espa�ol.gif: Protocol error

我试着使用删除文件

$ git rm path/espa�ol.gif
$ git rm --cached path/espa�ol.gif
$ git rm path/espa?ol.gif
$ git rm --cached path/espa?ol.gif

但是,没有什么变化,它口口声声说“协议错误”。

如果我尝试合并,我得到:

错误:您的本地“路径/ espaol.gif”的变化将通过合并来覆盖。中止。

有没有办法从索引中删除该文件,并停止为这个错误?

编辑:我的问题解决了删除Git仓库,并再次创造它,而不会在名称中西班牙字符的任何文件。

git encoding filenames character
2个回答
13
投票

这应该解决的问题

git config core.quotepath false

man git-config(1)为core.quotepath:

该输出路径的命令(例如LS-文件,差异),没有给出-z选项时,将通过在双引号包围一对的路径名,并用反斜杠C中的相同的方式引用字符串中的路径名“异常”的字符源代码被引用。如果该变量被设置为假,则字节高于0×80未引述而输出作为逐字。需要注意的是双引号,反斜线和控制字符总是引用而未-z不管这个变量的设置。


1
投票

你也可以使用git clean(可能git clean -d -f但先咨询git的手册!)命令来删除未跟踪文件 - 这是错误消息的原因“错误:您当地的变化......”。

由于编码问题,Git的可能已经创建了一个文件,一个坏的文件名,但整个(拉/推?)操作被拒绝后,已创建的文件留在目的地。

© www.soinside.com 2019 - 2024. All rights reserved.