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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

我从现有文件创建了一个存储库。在一组文件中,有一个文件名为“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

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

如果我尝试合并,我会收到:

error: Your local changes to 'path/espa�ol.gif' would be overwritten by merge. Aborting.

是否有任何方法从索引中删除文件,并停止出现此错误?

我解决了删除Git存储库并再次创建它的问题,没有任何名称中包含西班牙字符的文件。

提问于
用户回答回答于

你也可以用git clean(可能)git clean -d -f先查阅git手册)命令删除未跟踪文件-这是错误信息“Error:YourlocalChanges...”的原因。

由于编码问题,Git可能已经创建了一个文件名错误的文件,尽管整个(拉/推?)操作被拒绝,但该文件仍然在目标中。

用户回答回答于

这应该能解决这个问题。

git config core.quotepath false

从MAN git-config(1)关于核心路径:

输出路径(例如ls-file、diff)的命令,如果不给-z选项,将在路径名中引用“不寻常”字符,将路径名括在双引号对中,并使用反斜杠引用C源代码中字符串的相同方式。如果将此变量设置为false,则大于0×80的字节不会被引用,而是以逐字方式输出。请注意,双引号、反斜杠和控制字符总是不带-z引用,而不管这个变量的设置如何。

扫码关注云+社区