Git 无法添加名称包含波浪号的文件&x27~';后面跟着一个数字

Git 无法添加名称包含波浪号的文件&x27~';后面跟着一个数字,git,indexing,msysgit,tilde,Git,Indexing,Msysgit,Tilde,该文件夹由文件名如下的文件组成:abc~1,123~1,a1d2~3 当我做git add--all时,它说 $ git add --all error: Invalid path 'abc~1.png' error: unable to add abc~1.png to index fatal: adding files failed 我做了一个尝试和错误,我发现只有当波浪符号后面跟一个数字时,这个错误才会持续 如果git第一次跟踪该文件夹,那么git也不会跟踪其他文件 $ git clea

该文件夹由文件名如下的文件组成:
abc~1
123~1
a1d2~3

当我做git add--all时,它说

$ git add --all
error: Invalid path 'abc~1.png'
error: unable to add abc~1.png to index
fatal: adding files failed
我做了一个尝试和错误,我发现只有当波浪符号后面跟一个数字时,这个错误才会持续

如果git第一次跟踪该文件夹,那么git也不会跟踪其他文件

$ git clean --dry-run
Would remove Rest.png
Would remove abc~1.png

请帮助我如何解决此问题。

这是对msys Git所做更改的结果

在Windows的默认文件系统FAT和NTFS上,使用DOS样式的8.3文件名 支持向后兼容。这意味着有多个 引用同一文件的方法。例如,文件 凭据缓存——daemon.c也可以通过CREDEN~1.c访问(除非 另一个文件已经映射到所谓的“短名称”,即。 确切的简称是不可预测的)

因为这种映射是不可预测的,所以我们需要在 同时,我们还排除了与Windows不兼容的其他文件名 Windows的文件系统(例如NUL、CON等)

我们使用在上一次提交中引入的core.protectNTFS保护 确保我们仅在适当的时候才阻止此类文件名

要禁用此行为,您可以运行:

git config core.protectNTFS false
然而,既然新的行为是为了保护你,我推荐你 添加文件后将其更改回:

git config core.protectNTFS true
仅当需要在中添加具有波浪形的文件时才禁用此保护 命名或签出包含此类文件名的分支

一般来说,如果在中工作,我建议避免使用此类文件名
Windows环境。

您确定要添加名称中包含~的所有文件吗?看起来像是编辑器生成的临时文件。是的,那些带有文件名(abc~1.png)的图像在java代码中使用。非常感谢Anthony提供的链接和解决方案。很好的发现,+1。在git add中使用
-f
标志可以避免这种情况吗?@mu無 不,不能。萨比,很高兴能帮上忙。我打赌你不会是唯一一个受到影响的人。我建议进行编辑,以便其他人可以更容易地找到这个问题。谢谢你的回答-它帮助了很多。windows确实有令人恼火的文件系统限制——我的问题是由一个末尾有点的文件引起的