git默认不区分文件名大小写¶
我在排查 Read the Docs编译缓慢的解决建议 时,意外发现RTD编译的时候,提示了一个文件不存在的错误:
... WARNING: Include file '... mysql/installation/install_mariadb/yum_install_MariaDB' not found or reading it failed
但是我在自己的本地电脑上 make html
没有报错,并且我检查了该 install_mariadb/
目录:
total 40K
-rw-r--r-- 1 huatai dialout 179 Aug 7 00:18 create_db_user
-rw-r--r-- 1 huatai dialout 564 Sep 20 23:21 MariaDB_10.11.repo
-rw-r--r-- 1 huatai dialout 579 Sep 20 16:33 MariaDB.repo
-rw-r--r-- 1 huatai dialout 110 Aug 6 22:50 mariadb_startup
-rw-r--r-- 1 huatai dialout 35 Aug 6 22:45 mysql_secure_installation
-rw-r--r-- 1 huatai dialout 91 Sep 20 16:55 rpm_install_pcre2
-rw-r--r-- 1 huatai dialout 35 Aug 6 22:39 start_mariadb
-rw-r--r-- 1 huatai dialout 35 Aug 6 22:37 yum_install_mariadb
-rw-r--r-- 1 huatai dialout 61 Sep 20 16:37 yum_install_MariaDB
-rw-r--r-- 1 huatai dialout 319 Sep 20 16:37 yum_install_MariaDB_error
可以看到一个微妙的差别,有两个类似文件名,区别仅是字母大小写区别
检查GitHub仓库,果然发现这两个同名但字母大小写差异的文件,只上传成功了一个:
解决方法¶
如果确实想要通过文件名大小写来区别文件,并且让 git
能够识别,则需要修订 git
配置,设置对文件名大小写敏感:
git config core.ignorecase false
另一种方法就是严格规范文件名命名,禁止只有大小写区别的同名文件