Warm tip: This article is reproduced from serverfault.com, please click

其他-Windows版Git中的文件名太长

(其他 - Filename too long in Git for Windows)

发布于 2014-03-22 09:14:24

我正在使用Git-1.9.0-preview20140217Windows。据我所知,此版本应解决文件名过长的问题。但是不适合我。

当然,我做错了什么:我没有git config core.longpaths truegit add .git commit一切顺利。但是当我现在执行a时git status,我得到了带有的文件列表Filename too long,例如:

node_modules/grunt-contrib-imagemin/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js: Filename too long

对我而言,复制非常简单:只需使用Angular生成器(“ yo angular”)创建Yeoman Web应用程序并将其node_modules.gitignore文件中删除即可然后重复上述Git命令。

我在这里想念什么?

Questioner
Papa Mufflon
Viewed
11
iveqy 2018-12-14 18:31:38

Git的文件名限制为4096个字符,但在Windows上使用msys编译Git时除外。它使用Windows API的较旧版本,文件名限制为260个字符。

据我了解,这是msys的限制,而不是Git的限制。你可以在此处阅读详细信息:https : //github.com/msysgit/git/pull/110

你可以通过使用Windows上的Git的另一个客户端或组绕过这一core.longpathstrue在其他的答案解释。

git config --system core.longpaths true

Git是脚本和已编译代码的组合。通过上述更改,某些脚本可能会失败。这就是默认情况下不启用core.longpaths的原因。

https://docs.microsoft.com/zh-cn/windows/desktop/fileio/naming-a-file的Windows文档提供了更多信息:

从Windows 10版本1607开始,MAX_PATH限制已从常见的Win32文件和目录功能中删除。但是,你必须选择加入新行为。

注册表项允许你启用或禁用新的长路径行为。若要启用长路径行为,请将注册表项设置为HKLM \ SYSTEM \ CurrentControlSet \ Control \ FileSystem LongPathsEnabled(类型:REG_DWORD)