Windows 版 Git 中的文件名太长

2024-03-03

我在用着Git-1.9.0-preview20140217对于 Windows。据我所知,这个版本应该可以解决文件名太长的问题。但不适合我。

我肯定做错了什么:我做错了git config core.longpaths true and git add .进而git commit。一切顺利。但是当我现在做一个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

对我来说重现非常简单:只需创建一个Yeoman https://en.wikipedia.org/wiki/Yeoman_(software)使用 Angular 生成器(“yo Angular”)创建 Web 应用程序并删除node_modules来自.gitignore文件。然后重复前面提到的 Git 命令。

我在这里缺少什么?


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

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

您可以通过使用 Windows 上的另一个 Git 客户端或设置来规避此问题core.longpaths to true正如其他答案中所解释的。

git config --system core.longpaths true

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

Windows 文档位于https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-之后 https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later还有更多信息:

从 Windows 10 版本 1607 开始,MAX_PATH 限制已 从常见的 Win32 文件和目录函数中删除。然而,你 必须选择接受新行为。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 版 Git 中的文件名太长 的相关文章

随机推荐

  • 如何设置仅显示月份和年份的日期选择器的日期

    我正在尝试显示一个仅显示月份 年份菜单的日期选择器 就像这个 Q 中那样jquery 日期选择器仅显示月份年份 https stackoverflow com questions 2208480 jquery date picker to
  • 来自多个数据库的 Hibernate 实体

    我们的数据模型分为两个数据库上的模式 除了一些在两者之间桥接的单键关系之外 这些模式是单独使用的 没有跨两个数据库的写入事务 类似这个问题使用 Hibernate 连接不同数据库中的 2 个表 https stackoverflow com
  • 为什么覆盖会改变列名

    我使用的是 rev 监听器的默认实现 正如预期的那样 我的 REVINFO 表中的列是 revtstmp 和 rev 然而 当我覆盖默认值时 我所做的只是 MyRevisionEntity extends DefaultRevisionEn
  • 是否有在多个事件侦听器上执行逻辑的设计模式

    我有在多个不同事件的步骤上执行的逻辑 例如 在 mousedown 上完成一些逻辑 这会更改 mousemove 使用的某些共享状态 这也会更改最终 mouseup 使用的某些共享状态 例如它可能看起来像这样 function handle
  • 检测用户何时将数据输入 edittext 立即显示答案[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何检测一个字符是否被输入到 Edi
  • 使用 array_diff 比较两个数组

    我有以下代码 并尝试将两个数组与 array diff 进行比较 但我一直没有得到任何结果 我不确定这是否重要 但数组中有很多字段 我真的只想比较 1 个字段 这可能吗 我缺少什么
  • 如何在点击后隐藏横幅并使用本地存储保存?

    我是 Java 脚本新手 在用户单击 Cookie 横幅上的 接受 后 我不知道如何保存信息 本地存储 一旦他单击 接受 Cookie 横幅就会消失 我想保存因此 当他进入下一页或重新加载页面时 他不会再次收到 Cookie Banner
  • Bash - HTML 内容的正则表达式

    我正在学习 Bash 脚本 并且需要一些帮助来理解正则表达式 我有一个基本上是网页 html 的变量 使用 wget 导出 currentURL https www example com currentPage wget q O curr
  • 嵌套 TextBlock 和超链接,如何在 C# 中复制此 XAML?

    我有这个 XAML
  • 创建自定义 Object3D 类

    我是来自 AS3 Away3D 背景的 THREE js 新手 我正在尝试创建一个扩展 THREE Object3D 的自定义对象类以添加到我的场景中 CustomObject会封装很多行为属性和方法 理想情况下 我想传递每个 Custom
  • Android 下载管理器所有下载完成后如何通知

    我正在使用 Android 下载管理器类 所有下载完成后我需要写 下载完成 我尝试过一些东西并且它有效 但在这里 它是在逐个文件完成后写入的 我只需要写一次 全部完成后 我也尝试过没有光标 但我没能实现 public class Downl
  • XCode 链接到 OpenSSL 库

    我有一个需要链接 openssl 库的项目 尽管在编译时遇到了一些问题 include
  • Netbeans 7.2.1 损坏的参考:dist.jar(在 JavaFX 文件上编码时)

    我试图通过阅读一些教程来学习 JavaFX 但是 我什至无法实现 helloworld 应用程序 NetBeans 说道 错误 无法找到或加载主类 helloworld NewFXMain Java 结果 1 然后当我检查 属性 gt 库
  • pdf.js 只适用于某些 pdf 文件吗?

    我正在尝试使用将 pdf 页面转换为画布pdf js 我使用了答案使用 pdf js 和 ImageData 将 pdf 渲染到单个 Canvas https stackoverflow com questions 15341010 ren
  • 在 pandas 数据框中添加缺失的时间

    我有一个pandas DataFrame在列中带有时间戳 这些值以纪元为单位 间隔 0 1 秒 价值观如1488771900 100000 1488771900 200000等等 但是 存在缺失值 所以我有1488794389 500000
  • 将文件编码为 Base64 时内存不足

    使用 Apache commons 中的 Base64 public byte encode File file throws FileNotFoundException IOException byte encoded try FileI
  • C++:C 字符串集

    我想创建一个 以便我可以使用 set find 检查某个单词是否在集合中 然而 C 字符串是指针 因此默认情况下该集合将通过指针值来比较它们 为了正确运行 必须取消引用它们并比较字符串 我可以只向构造函数传递一个指向 strcmp 函数的指
  • Python Moviepy安装问题(Windows 7x64)

    美好的一天 我在为 python 64 位和 Windows 64 位安装 moviepy 时遇到问题 库安装成功 文件ffmpeg下载 每次我运行它或使用 video VideoFileClip path OSError WinError
  • FirebaseobserveSingleEvent 保留在内存中

    我的应用程序相当多地使用 firebase 的observeSingleEventOfType 我开始意识到我的应用程序的内存随着时间的推移而增加 我已经注释掉了所有代码 除了调用以下函数的测试按钮 func loadPostsTest F
  • Windows 版 Git 中的文件名太长

    我在用着Git 1 9 0 preview20140217对于 Windows 据我所知 这个版本应该可以解决文件名太长的问题 但不适合我 我肯定做错了什么 我做错了git config core longpaths true and gi