Git 文件名大小写的踩坑之旅

网站能显示了很开心有木有,左下角 GitHub 图片怎么没有显示很奇怪有木有,一开始以为是主题中页面的问题,研究半天前端源代码并没有什么不对啊有木有,原来是 Git 的锅。

起因

之前快速构建基于 Hexo 和 Github 的个人网站这篇文章中有提到发布 Hexo 时要安装 hexo-deployer-git,它是为发布 Hexo 开发的 Git 插件。每次发布都用的是这插件。

本地,我明明将 GitHub 图片取名为 GitHub.png,一使用

1
$ hexo d

发布后,文件名就会变成 github.png

网址上直接用 URL 访问图片是区分大小写的啊,好坑爹啊有木有。

经过

StackOverFlow 上有人问了类似的问题,采用了其中赞最多的答案试了一下:

1
$ git mv -f github.png GitHub.png

提示:没有 repo,当然不能改名了:

1
fatal: Not a git repository (or any of the parent directories): .git

那就用 GitHub Desktop 把 github.io clone 下来,在对应目录执行上述命令后,搞定。

1
2
3
$ git add .
$ git commit -m "修改文件名大小写"
$ git push origin master

嗯,可以看到图片了好开心啊有木有。那我更新 Hexo 再发布一次吧。一通操作后,图片又消失了。

解决方案

每次使用 hexo d 发布都会把文件名给我变成小写啊,每次图片都 404 啊,这个锅必须要让 Git 来背啊。

进到 .get 目录,我这边是位于 /.../hexo/.deploy_git/.git。找到 config 文件,打开后,将 [core] 分支下的

1
ignorecase = true

改成

1
ignorecase = false

即可。

妈妈再也不用担心我每次发布都找不到大写的文件了。

PS

其实,文件名都用小写就没这个问题的,坑就坑在 GitHub 有多种写法,现在才发现也不晚咯。

文章目录
  1. 1. 起因
  2. 2. 经过
  3. 3. 解决方案
    1. 3.0.1. PS