无法添加名称中包含代字号的文件,'〜'接下来是一个数字

时间:2015-03-27 06:52:09

标签: git indexing msysgit tilde

该文件夹包含文件名为abc~1123~1a1d2~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

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

1 个答案:

答案 0 :(得分:15)

这是对msys Git in December 2014进行更改的结果。

  

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

     

由于这种映射是不可预测的,我们需要禁止这样的文件名   Windows,在此期间,我们还排除了与其不兼容的其他文件名   Windows的文件系统(例如NUL,CON等)。

     

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

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

git config core.protectNTFS false

但是,由于新的行为是为了保护你,我建议 在添加文件后将其更改回来:

git config core.protectNTFS true

仅在需要添加带有波浪号的文件时才禁用此保护 命名或签出包含此类文件名的分支。

一般情况下,我建议在工作时避免使用此类文件名 Windows环境。