OS X 上的 Git 'filename too long' 错误

标签 git macos filenames long-filenames short-filenames

我在 linux 上有一个由 git 跟踪的目录,我将它复制到 mac OS。在 git status 上,由于 filename: File name too long 错误,多个文件未被跟踪。一个文件名(及其相对路径)为 393 个字符。是否有 4096 个字符的限制(Windows 除外)? [Reference]我的 core.longpaths 设置为 true。 (core.precomposeunicode 也设置为 true,但可能无关紧要)。有什么建议吗?

最佳答案

OS X 将 NAME_MAX(路径名组件中的字节数)设置为 255:

$ grep NAME_MAX /usr/include/sys/syslimits.h
#define NAME_MAX          255   /* max bytes in a file name */
#define CHARCLASS_NAME_MAX     14   /* max character class name size */

那个 393 字节的名称是单个组件还是整个路径? (示例:"foo/bar/baz" 有 3 个组件,每个组件 3 个字节,整个路径是 11 或 12 字节,具体取决于您是否计算终止 '\0'。此处的 NAME_MAX 常量不计入终止 '\0'。)

关于OS X 上的 Git 'filename too long' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33796466/

相关文章:

git - 在 .gitattributes 中将文件夹标记为二进制文件

Git 从另一个远程分支更新我的远程分支

javascript - 如何在 Mac 上设置反向代理?

混帐针导入 : how to make one master branch?

git - 如何将最后一次提交 rebase (压缩)到 master 并更改提交消息

ruby - heroku更新错误

macos - 从文件夹创建 ISO 镜像

powershell - 使用 powershell 将双引号写入文件名文本

linux - 创建新文件但如果文件名已存在于 bash 中则添加数字

Java GetFile 在使用 SetFile 后返回不正确的文件名