windows系统不能创建的文件名

使用git clone一个仓库怎么也克隆不成功,一查原因竟是windows系统下不能创建某些文件(夹)。

重现问题

  • 执行git clone xxx报以下错误。

    1
    2
    3
    4
    fatal: cannot create directory at 'CON': Invalid argument
    warning: Clone succeeded, but checkout failed.
    You can inspect what was checked out with 'git status'
    and retry the checkout with 'git checkout -f HEAD'
  • 按照指示执行git checkout -f HEAD依然报下列错误。

    1
    fatal: cannot create directory at 'CON': Invalid argument

问题分析

  • 由于git clone操作会将远程仓库文件下载到本地,如果远程仓库存在CON文件,导致git创建不了windows系统保留的关键词,导致克隆失败。
  • 本地试了一下创建一个CON文件结果报以下错误:
    插图

问题解决

  • 将远程仓库的CON文件重命名即可解决问题。

总结

  • 避免创建windows系统保留的文件名字。
  • 从微软官方文档找到以下不可使用的预留名称:
    CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9。
  • 同时还要避免这些名称后面紧跟着一个扩展名
    1
    https://docs.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file

关于更多

  • Qt君公众号后台回复”git“获取更多相关信息。