git 拉取对于太长的文件名不起作用
git pull does not work for too long file name
我在 Windows 上提交了(使用 Git)并推送(到 GitHub)2 个名称有点长的 pdf 文件[= =18=] 机器,然后尝试将它们拉到我的 Linux Mint 机器上,但出现此错误:
Updating 1453916..ffdfabc
error: cannot stat 'long-file-name-1.pdf': File name too long
error: cannot stat 'long-file-name-2.pdf': File name too long
如何在我的 Linux 机器上拥有这 2 个文件而不丢失 and/or 文件的名称?
如果您没有按照@phd 的建议使用加密家庭,那么您很可能会遇到 Git.[=14= 中不存在的 Linux 限制]
大多数 Linux 内核是用 NAME_MAX=255
编译的(参见 here)。这意味着文件名不能超过 255 个字节。如果您使用的是非 ASCII Unicode 字符,则字符数甚至少于 255 个。
在 Windows 中,限制大于 255 字节,这就是为什么您能够在 Windows.
中创建这些文件的原因
如果你想让它在 Linux 上工作,你需要在 Windows 中将它们重命名为 255 字节(字节,不是字符!)或更少。
如果您打算检查这些修订,您需要做一些 history rewrite。
有很多更疯狂的选择,比如用不同的 NAME_MAX
重新编译内核,如果不是绝对必要,请不要去那里。
我在 Windows 上提交了(使用 Git)并推送(到 GitHub)2 个名称有点长的 pdf 文件[= =18=] 机器,然后尝试将它们拉到我的 Linux Mint 机器上,但出现此错误:
Updating 1453916..ffdfabc
error: cannot stat 'long-file-name-1.pdf': File name too long
error: cannot stat 'long-file-name-2.pdf': File name too long
如何在我的 Linux 机器上拥有这 2 个文件而不丢失 and/or 文件的名称?
如果您没有按照@phd 的建议使用加密家庭,那么您很可能会遇到 Git.[=14= 中不存在的 Linux 限制]
大多数 Linux 内核是用 NAME_MAX=255
编译的(参见 here)。这意味着文件名不能超过 255 个字节。如果您使用的是非 ASCII Unicode 字符,则字符数甚至少于 255 个。
在 Windows 中,限制大于 255 字节,这就是为什么您能够在 Windows.
中创建这些文件的原因如果你想让它在 Linux 上工作,你需要在 Windows 中将它们重命名为 255 字节(字节,不是字符!)或更少。
如果您打算检查这些修订,您需要做一些 history rewrite。
有很多更疯狂的选择,比如用不同的 NAME_MAX
重新编译内核,如果不是绝对必要,请不要去那里。