我创建了从现有文件的存储库。该组文件里面,是一个名为“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 config core.quotepath false
从man git-config(1)为core.quotepath:
该输出路径的命令(例如LS-文件,差异),没有给出-z选项时,将通过在双引号包围一对的路径名,并用反斜杠C中的相同的方式引用字符串中的路径名“异常”的字符源代码被引用。如果该变量被设置为假,则字节高于0×80未引述而输出作为逐字。需要注意的是双引号,反斜线和控制字符总是引用而未-z不管这个变量的设置。
你也可以使用git clean
(可能git clean -d -f
但先咨询git的手册!)命令来删除未跟踪文件 - 这是错误消息的原因“错误:您当地的变化......”。
由于编码问题,Git的可能已经创建了一个文件,一个坏的文件名,但整个(拉/推?)操作被拒绝后,已创建的文件留在目的地。