使用西班牙语字符进行 Git 字符编码
我从现有文件创建了一个存储库。在这组文件中,有一个名为“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 存储库并再次创建它的问题,但没有任何名称中包含西班牙语字符的文件。
I created a repository from existing files. Inside the set of files, was one with the name "español.gif". Now, everytime I do
$ git status
I receive an error:
$ path/espa�ol.gif: Protocol error
I tried removing the files using
$ 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
but, nothing changes, it keeps saying "Protocol error".
If I try a merge, I receive:
error: Your local changes to 'path/espa�ol.gif' would be overwritten by merge. Aborting.
Is there any way to remove the file from the index, and stop having this error?
Edit: I solved the problem deleting the Git repository and creating it again, without any file with an Spanish character in the name.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题
这应该可以解决man git-config(1) 的 核心.引用路径:
This should solve the problem
From man git-config(1) for core.quotepath:
您还可以使用 git clean(可能是 git clean -d -f 但先查阅 git 手册!)命令来删除未跟踪的文件 - 这就是错误消息“错误:您的本地更改......”的原因。
由于编码问题,Git 可能已经创建了一个文件名错误的文件,尽管整个(拉/推?)操作被拒绝,但已创建的文件仍保留在目标中。
You could also use
git clean
(probablygit clean -d -f
but consult git manual first!) command to remove untracked files - this is the reason for error message "error: Your local changes ....".Because of the encoding problems, Git probably already created a file with a bad filename and although the whole (pull/push?) operation was rejected, the already created file remained in the destination.