0

这是一个非常简单的问题:符号 ref 文件中使用的字符编码是什么.git/HEAD,尤其是在 Windows 上?

它与文件系统的编码相同吗?不过,这听起来不太可能,因为我之前听说过 Windows 的文件系统编码是 UTF-16 和 ASCII 控制字节0x00..0x1F,并且0x7F在 Git 引用名称中被禁止(我们在 Git 引用中不能有字节 0x00)。它是通用的 UTF-8 吗?但是,它似乎没有记录在git help check-ref-format. 也许它位于其他地方?还是符号参考的编码未定义?但是,我们如何在彼此之间克隆、推送和获取分支?

4

1 回答 1

1

Git 的 refs 没有使用特定的字符编码。格式在git check-ref-format手册页中指定,它允许各种字节值,包括不是值 UTF-8 的值,例如 0xFE 和 0xFF。

但是,话虽如此,ref 名称习惯上使用 UTF-8,当 ref 文件写入 Windows 上的文件系统时,它们将被转换为 UTF-16,因为 Windows 无法处理其文件中的任何其他内容系统。然而,文件的内容仍然是包含任意字节的东西,这又是习惯上(但不一定是)UTF-8。

于 2021-09-15T00:18:42.630 回答