gpt4 book ai didi

bash - Git checkout 失败,返回 "Illegal byte sequence"

转载 作者:行者123 更新时间:2023-12-02 16:52:47 24 4
gpt4 key购买 nike

我正在尝试将源代码回滚到 git 上的旧版本。

$ git checkout -f c258d300c8e85d68eeb15763eb14a059a2984f6d
fatal: cannot create directory at 'client-common/src/test/java/com/adi?caas': Illegal byte sequence

那个adi?caas以上是问题的原因。

git diff --name-only c258d300c8e85d68eeb15763eb14a059a2984f6d~ c258d300c8e85d68eeb15763eb14a059a2984f6d
client-common/src/test/java/com/adi<F0>caas/client/common/utils/MockConfigurationFileBuilder.java

这也可能是一个非标准字符 adi<F0>cass .我该如何克服这个问题?有没有办法自动将这个字符映射到/ .因为那是应该的,所以我有 client-common/src/test/java/com/adi/caas/ .

我使用的是 mac OSX Mojave 10.14.6和 git 版本 2.16.2。

最佳答案

在 macOS 上,所有文件名都以 UTF-8 的特定规范化编码。无法使用无效的 UTF-8 名称创建文件,例如仅包含 ASCII 字符和 0xF0 字节的文件名。

然而,在大多数 Unix 系统上,文件名被编码为任意字节序列,因此 Git 允许您使用任何非 NUL 字节序列命名文件。过去有人将非 UTF-8 文件名放入您的存储库,现在无法 check out 该修订版。

您根本无法在 macOS 上 check out 该修订版。由于不区分大小写,Git 会愉快地 check out 重叠的文件,但如果无法创建目录,则不允许 check out 。如果你想检查它,你可以尝试使用 Linux VM 或 Docker 容器,或者你可以使用 git archive 生成 tarball 并使用存档工具将你想要的部分提取到适当的目录。您还可以在 Linux 系统上使用固定路径(使用 git mv)创建该修订版的副本,然后在您的 Mac 上查看它。

关于bash - Git checkout 失败,返回 "Illegal byte sequence",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com