首页 > 解决方案 > `git restore --source=HEAD :/` 在克隆具有长文件名的 repo 失败后不起作用

问题描述

在 Windows 上,当我尝试克隆包含具有长路径的文件的存储库(例如此存储库)时,它会失败:
Git错误

我的问题不是如何解决这个问题(这里已经回答),而是关于它推荐的命令:

git restore --source=HEAD :/

当我运行git config core.longpaths true该命令后它没有任何效果:该命令需要一段时间,但之后git status仍然报告了很多更改。

但是,运行git reset --hard没有问题并正确签出文件。

那么 Git 的建议使用git restore不正确(至少在这种情况下)?


Git版本:2.33.0.windows.2

标签: gitgit-for-windows

解决方案


当我运行git config core.longpaths true[推荐的git restore]命令后它没有效果:该命令需要一段时间,但之后git status仍然报告了很多变化。但是,运行git reset --hard没有问题并正确签出文件。

这意味着 Git-for-Windows 中的一个错误。该错误可能很难修复(基本上 Git 不知道core.longpaths在早期尝试中是如何设置的),但您应该报告它。

您可以尝试git restore --source=HEAD -SW :/,这会使动作在git reset --hard内部匹配,看看是否有效。如果是这样,也许解决方法是在此处更改默认建议。:-)


推荐阅读