因为修改文件名大小写 GitLab ,GitHub ,Netlify 报错文件不存,如何让Git识别文件名大小写

发现近期一极乐 push 的 Commit 在 Gitlab 和 Netlify 都没构建,查看一下日志发现 Jekyll 找不到某文件,可是Git 中明明有该文件,仔细对比才想起上次在 Windows 11 中将该文件名中的大写都修改成了小写,别的文件引用时也都使用了小写,然后当时 GitHub Desktop 没有提示 Commit 也并未在意。所以出现了这找不到文件的乌龙事件。

1
2
3
    Generating... 
Jekyll Feed: Generating feed for posts
Liquid Exception: Could not locate the included file 'websitestyle.js' in any of ["/builds/yijile/123/project/tampermonkey/script"]. Ensure it exists in one of those directories and, if it is a symlink, does not point outside your site source. in project/tampermonkey/script/config_WebsiteStyle.js

Windows 11 中的 Git 这点有点坑,其实很多常见都是会识别大小写的。但是它却忽略了,可能就会出现类似问题。分享到一极乐解决方案:让Git识别文件名大小写。也便于下次遇到类似问题时不慌张。

检查 Git 是否识别文件名大小写

通过 终端 或 CMD 使用以下命令,返回 true 表示不识别大小写,返回 false 表示识别大小写

只查看当前项目 Git 配置

1
git config --get core.ignorecase

查看全局 Git 配置

1
git config --get --global core.ignorecase

修改为 Git 识别文件名大小写

只修改当前项目

1
git config --local core.ignorecase false

修改全局配置

1
git config --global core.ignorecase false

修改后你会发现之前修改过文件名的大小写的文件都会出现在 Commit 中。此时只需提交 Commit ,GitLab 、GitHub 、Netlify 构建后便不会报错了。

注意事项

  • 全局为 false 时不代表当前项目一定为 false ,所以如果没生效就针对当前项目检查或者修改设置。
  • 查看当前项目的设置请先通过终端打开当前项目目录

本文可以解决的问题

  • 在 GitHub Desktop 上修改了文件名的大小写不识别更新(Commit)
  • 在 Git 上修改了文件名的大小写不识别更新(Commit)

Relay Tips: 一极乐https://yijile.com/zh/git-and-github-desktop-recognize-file-name-case/