使用西班牙语字符进行 Git 字符编码

发布于 2024-11-30 19:57:02 字数 562 浏览 2 评论 0原文

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

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

戏剧牡丹亭 2024-12-07 19:57:02

问题

git config core.quotepath false

这应该可以解决man git-config(1) 的 核心.引用路径:

输出路径的命令(例如 ls-files、diff),如果没有的话
给定 -z 选项,将引用中的“不寻常”字符
路径名,将路径名括在双引号对中并使用
反斜杠与 C 源代码中的字符串引用方式相同。如果
该变量设置为 false,则不考虑高于 0×80 的字节
引用但逐字输出。注意双引号、反斜杠
并且控制字符总是在不带 -z 的情况下被引用
该变量的设置。

This should solve the problem

git config core.quotepath false

From man git-config(1) for core.quotepath:

The commands that output paths (e.g. ls-files, diff), when not
given the -z option, will quote “unusual” characters in the
pathname by enclosing the pathname in a double-quote pair and with
backslashes the same way strings in C source code are quoted. If
this variable is set to false, the bytes higher than 0×80 are not
quoted but output as verbatim. Note that double quote, backslash
and control characters are always quoted without -z regardless of
the setting of this variable.

-黛色若梦 2024-12-07 19:57:02

您还可以使用 git clean(可能是 git clean -d -f 但先查阅 git 手册!)命令来删除未跟踪的文件 - 这就是错误消息“错误:您的本地更改......”的原因。

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

You could also use git clean (probably git 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文