我使用Git-1.9.0-preview20140217 for Windows。据我所知,这个版本应该解决文件名过长的问题。但对我来说不是。

当然我做错了什么:我做了git配置核心。Longpaths true和git add。然后git提交。一切都很顺利。但是当我现在做一个git状态时,我得到了一个文件名太长的文件列表,例如:

node_modules/grunt-contrib-imagemin/node_modules/ pngquent -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应用程序,并从.gitignore文件中删除node_modules。然后重复前面提到的Git命令。

我错过了什么?


当前回答

更好的解决方案是从Git中启用longpath参数。

git config --system core.longpaths true

但是一个可行的解决方法是从Git中删除node_modules文件夹:

$ git rm -r --cached node_modules
$ vi .gitignore

在.gitignore文件中的新行中添加node_modules。这样做之后,推送你的修改:

$ git add .gitignore
$ git commit -m "node_modules removed"
$ git push

其他回答

创建.gitconfig并添加

[core]
longpaths = true

您可以在项目位置(不确定)和全局位置创建文件。在我的例子中,位置是C:\Users\{name}\。

更好的解决方案是从Git中启用longpath参数。

git config --system core.longpaths true

但是一个可行的解决方法是从Git中删除node_modules文件夹:

$ git rm -r --cached node_modules
$ vi .gitignore

在.gitignore文件中的新行中添加node_modules。这样做之后,推送你的修改:

$ git add .gitignore
$ git commit -m "node_modules removed"
$ git push

这可能会有帮助:

git config core.longpaths true

基本解释:这个答案建议不要将这样的设置应用于全局系统(所有项目,因此避免——system或——global标签)配置。此命令仅通过特定于当前项目来解决问题。

编辑:

对于那些没有被授予全局更改git设置的人来说,这是一个与“权限拒绝”问题相关的重要答案。

从这里下载并安装Git bash: https://git-scm.com/download/win 以管理员身份运行git bash gui,执行命令:git config——system core。longpaths真实 现在克隆任何存储库。 如果问题没有解决,试试这个命令:git config——global core。longpaths真实 如果没有帮助,请重新启动窗口。

执行git配置——系统核心。Longpaths true向我抛出了一个错误:

错误:无法锁定配置文件C:\Program Files (x86)\Git\mingw32/etc/gitconfig: Permission denied"

修正了在全局级别执行命令:

git config --global core.longpaths true