使用git clone一个仓库怎么也克隆不成功,一查原因竟是windows系统下不能创建某些文件(夹)。
重现问题
- 执行git clone xxx报以下错误。
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依然报下列错误。
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。 - 同时还要避免这些名称后面紧跟着一个扩展名。
https://docs.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file