/ git

heroku about file extension case sensitive

許多人對於檔案附檔名甚至是檔名命名方式常有不同習慣,甚至是因為不小心,導致附檔名有大小寫區分。最常見的就是 file1.jpg, file2.JPG, file3.png, file5.PNG。

最近在使用 heroku 上就遇到有關大小寫的問題,會有幾個狀況發生:

  • 在網址的附檔名上有大小寫區分
  • 瀏覽器的 cache 也會有
  • git 也有此問題

最基本的作法就是將所有檔名與附檔名都改為小寫,這邊可以使用指令完成

rename 'y/A-Z/a-z/' *

但若是 MAC 或是 Windows 這種 case-insensitive(大小寫沒差)的系統,需要加上參數 -f

rename -f 'y/A-Z/a-z/' *

順道一提,基本上 Linux 通常都是 case-sensitive 的系統。

那在本機(MAC)做完後發現,git 沒有任何動靜,即使改了幾十個 image 的檔名從大寫變成小寫,最後發現問題出在 GIT。

GIT 在預設狀態是不管大小寫,都視為同樣的檔案,不會有任何變動的反應,需要設定告知目前系統是有大小寫區分的:

git config core.ignorecase false

設定完後剛所有變動檔名的檔案就是可以進到 stage 的狀態了!