我正在使用Git-1.9.0-preview20140217
Windows.据我所知,这个版本应该解决文件名太长的问题.但不适合我.
当然,我做错了什么:我没有git config core.longpaths true
和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
Run Code Online (Sandbox Code Playgroud)
复制对我来说非常简单:只需使用Angular生成器创建一个Yeoman Web应用程序("yo angular")并node_modules
从.gitignore
文件中删除.然后重复上述Git命令.
我在这里错过了什么?
spa*_*ym3 992
您应该能够运行该命令
git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是受支持的Git版本,请手动将其添加到您的某个Git配置文件中以启用此功能.看起来可能是1.9.0及之后.
ive*_*eqy 530
Git对文件名的限制为4096个字符,除非在Windows上使用msys编译Git.它使用较旧版本的Windows API,文件名限制为260个字符.
所以据我所知,这是msys的限制,而不是Git的限制.您可以在此处阅读详细信息:https: //github.com/msysgit/git/pull/110
您可以通过使用Windows上的Git另一端绕过这或者设置core.longpaths
到true
在其他的答案解释的那样.
git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)
Git是作为脚本和编译代码的组合构建的.通过上述更改,某些脚本可能会失败.这就是默认情况下不启用core.longpaths的原因.
https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file上的Windows文档包含更多信息:
从Windows 10版本1607开始,MAX_PATH限制已从常见的Win32文件和目录函数中删除.但是,您必须选择加入新行为.
注册表项允许您启用或禁用新的长路径行为.要启用长路径行为,请在HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled(类型:REG_DWORD)中设置注册表项
Sag*_*dal 184
这可能有所帮助:
git config core.longpaths true
Run Code Online (Sandbox Code Playgroud)
基本解释:这个答案建议不要将这样的设置应用于全局系统(所有项目,以避免--system
或--global
标记)配置.此命令仅通过特定于当前项目来解决问题.
Yas*_*ash 64
创建.gitconfig并添加
[core]
longpaths = true
Run Code Online (Sandbox Code Playgroud)
您可以在项目位置(不确定)以及全局位置创建文件.在我的情况下,位置是C:\Users\{name}\
.
小智 40
这对我有用
以管理员身份运行终端。并运行下面的命令。
git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)
Jan*_*lva 35
更好的解决方案是从Git启用longpath参数.
git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)
但有效的解决方法是从Git中删除node_modules文件夹:
$ git rm -r --cached node_modules
$ vi .gitignore
Run Code Online (Sandbox Code Playgroud)
在.gitignore文件中的新行中添加node_modules.完成此操作后,推送您的修改:
$ git add .gitignore
$ git commit -m "node_modules removed"
$ git push
Run Code Online (Sandbox Code Playgroud)
gug*_*gol 32
要完全确定它在初始化存储库后立即生效,但在获取远程历史记录或检出任何文件之前,以这种方式使用它会更安全:
git clone -c core.longpaths=true <repo-url>
Run Code Online (Sandbox Code Playgroud)
-c key = value
在新创建的存储库中设置配置变量; 这在初始化存储库之后,但在获取远程历史记录或检出任何文件之前立即生效.密钥的格式与git-config 1预期的格式相同(例如,core.eol = true).如果为同一个键指定了多个值,则每个值都将写入配置文件.例如,这样就可以安全地向源远程添加额外的fetch refspec.
Md.*_*sen 21
git config --system core.longpaths true
git config --global core.longpaths true
Arp*_*wal 18
执行git config --system core.longpaths true
抛出一个错误给我:
“错误:无法锁定配置文件C:\ Program Files(x86)\ Git \ mingw32 / etc / gitconfig:权限被拒绝”
在全局级别执行命令已修复:
git config --global core.longpaths true
Run Code Online (Sandbox Code Playgroud)
ama*_*205 15
git config --global core.longpaths true
Run Code Online (Sandbox Code Playgroud)
上面的命令对我有用。使用“--system”给了我配置文件未锁定错误
您可以尝试暂时将本地存储库(整个文件夹)移动到驱动器的根目录或尽可能靠近根目录。
由于驱动器根部的路径较小,因此有时可以解决问题。
在 Windows 上,我会将其移至C:\
或另一个驱动器的根目录。
您还可以尝试启用长文件路径.
如果您运行Windows 10 Home Edition,则可以更改注册表以启用长路径.
转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
中regedit
,然后设置LongPathsEnabled
到1
.
如果您使用的是Windows 10 Pro或Enterprise,则还可以使用本地组策略.
转到计算机配置 → 管理模板 → 系统 → 文件系统中gpedit.msc
,打开启用Win32的长路径并将其设置为启用.
对于在 Windows 上使用 TortoiseGit 的任何人,我都是这样做的:
(1) 右键单击包含项目的文件夹。选择 TortoiseGit -> 设置。
(2) 在“Git”选项卡上,单击“编辑本地.git/config”按钮。
(3)在弹出的文本文件中,在[core]部分下,添加:longpaths = true
我希望这可以最大限度地减少任何可能的系统范围问题,因为我们不是在编辑全局 .gitconfig 文件,而只是针对这个特定存储库的文件。
在 Windows 中,您可以按照这些对我有用的步骤进行操作。
git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)
这将允许全局访问长路径
现在您可以克隆存储库而不会出现长路径问题
归档时间: |
|
查看次数: |
354484 次 |
最近记录: |