我从现有文件创建了一个存储库。在这组文件中,有一个文件名为"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
但是,什么都没有改变,它一直在说“协议错误”。
如果我尝试合并,我会收到:
错误:对'path/espa�ol.gif‘所做的本地更改将被合并覆盖。正在中止。
有没有办法从索引中删除该文件,并且不再出现这个错误?
编辑:我解决了删除Git存储库并重新创建它的问题,没有任何名称中包含西班牙语字符的文件。
发布于 2011-08-26 02:47:06
这应该可以解决问题。
git config core.quotepath false
从适用于core.quotepath的man git-config(1):
文件输出路径(如ls-
,diff)的命令,如果没有提供-z选项,将通过将路径名括在双引号对中并使用反斜杠引用路径名中的“不寻常”字符,这与C源代码中引用字符串的方式相同。如果此变量设置为false,则不对大于0×80的字节加引号,而是逐字输出。请注意,无论此变量的设置如何,双引号、反斜杠和控制字符始终使用不带-z的引号。
发布于 2011-09-02 19:31:45
您也可以使用git clean
(可能是git clean -d -f
,但请咨询git手册 first!)命令删除未跟踪的文件-这是错误消息" error : Your local changes ...“的原因。
由于编码问题,Git可能已经创建了一个文件名不正确的文件,尽管整个(拉/推?)操作被拒绝,已创建的文件仍保留在目标中。
https://stackoverflow.com/questions/7113849
复制相似问题