git clone 后仅拉取 .git 文件夹执行 git clone 命令后,目标文件夹中只有 .git 文件夹,其他文件未被拉取。
使用 git status -s 命令查看,所有文件均显示为已删除状态。
在执行 git checkout 切换分支时,出现如下错误,导致分支切换失败:
error: invalid path 'folder_1/....../name_1.txt'
error: invalid path 'folder_1/....../name_2.txt'
error: invalid path 'folder_1/....../name_3.txt'
error: invalid path 'folder_1/....../name_4.txt'
上述问题通常是由于代码中包含 NTFS 文件系统不支持的文件名(如含有特殊字符或保留名称)。这些文件可能是在 macOS 或 Linux 系统下创建的,而 Windows 的 NTFS 文件系统对文件命名有更严格的限制。
Git 在 Windows 下默认启用了 NTFS 保护机制(core.protectNTFS 设置为 true),这会阻止包含不兼容文件名的文件被检出。
可以通过关闭 Git 的 NTFS 保护机制来解决此问题。执行以下命令:
git config core.protectNTFS false
// 全局设置
git config --global core.protectNTFS false
该配置的含义如下:
如果设置为 true,则不允许检出可能与 NTFS 文件系统冲突的路径,例如与 8.3 “短”名称冲突的路径。默认情况下,在 Windows 上为 true,在其他系统上为 false。
关闭此保护后,再次执行 git checkout 命令。虽然仍会出现类似以下的错误提示,但其他文件将被成功拉取:
error: unable to create file folder_1/....../name_1.txt: No such file or directory
error: unable to create file folder_1/....../name_2.txt: No such file or directory
error: unable to create file folder_1/....../name_3.txt: No such file or directory
error: unable to create file folder_1/....../name_4.txt: No such file or directory