解决git error: invalid path

Solve 'git error: invalid path'

Posted by alovn on August 25, 2021

问题

在Windows10上使用git clone代码的时候抛出了异常,重试了几次都是相同的错误:

1
2
3
4
5
6
7
8
9
>git clone [email protected]:alovn/xxx.git
Cloning into 'xxx'...

Resolving deltas: 100% (7376/7376), done.
error: invalid path 'src/libs/util.import.development.js '
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

解决

源代码是在MacOS上编写的,但是在Windows10上拉取代码却出现了问题。根据提示可以看出代码clone是成功的,但是checkout的时候出现了错误。那么问题很可能是不通系统下文件属性或策略导致的。

然后在Git文档上找到一个关于NTFS保护机制的配置,core.protectNTFS:

If set to true, do not allow checkout of paths that would cause problems with the NTFS filesystem, e.g. conflict with 8.3 “short” names. Defaults to true on Windows, and false elsewhere.

Windows系统下默认值是true,也就是说不符合NTFS策略的文件不会被签出,设置为false后可以关闭保护机制。

1
git config core.protectNTFS false

设置后恢复正常。后来查看git提交日志的时候发现git对’src/libs/util.import.development.js ‘这个文件进行了rename操作,发现结尾包竟然有个空格,看来问题应该是它导致的。