GitHub上のファイル・ディレクトリに大文字・小文字の差分が反映されない


今回自身の忘備録または、同じ事象で悩んでいる方のためにメモとして残しておきます。

記載するにあたっての流れは、Reactで作成したアプリでyarn run buildコマンドを実行した際に、

「githubからcloneしたファイルとアプリがimportしているファイルのファイル名が違うよ!」

というエラーで怒られたのがきっかけです。

そもそも、Githubはデフォルトでファイル名の大文字・小文字を差分として認識しない設定らしく、認識するように設定するのであれば以下のコマンドを実行しましょう。

$ git config core.ignorecase false

ただ、上記を実行しただけではpushをしても反映されなかったので、下記の内容を実行してみてください。

※絶対にディレクトリ・ファイルのコピー・バックアップは取っておきましょう!

1.git上のキャッシュを削除する

まず、git上に残っているキャッシュを削除し、git上の管理対象から外します。
必ず一つのファイルずつ確認しながら実行しましょう。

git rm --cached PATH&FILENAME

2.実際にファイル・ディレクトリを削除する。

対象のファイル・ディレクトリを直接削除しましょう。(※絶対にコピー・バックアップは取っておきましょう!)

右クリックでもコマンドでもどちらでも大丈夫です。

3.大文字・小文字に修正した、同じ内容のファイル・ディレクトリを作成する。

実際に削除が出来たら、大文字・小文字のファイル名を思うように修正し、コピー・バックアップした内容を貼り付けましょう。

成功例としては、git statusを実行すると、下記のように

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    src/components/Footer/index.tsx
        deleted:    src/components/Footer/style.scss

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   src/components/footer/index.tsx
        modified:   src/components/footer/style.scss

deletedとmodified計4つの変更が確認できますので、コミット・プッシュをしましょう。
コミット・プッシュがした跡は、リモートリポジトリがしっかりと反映されているか確認しましょう。

以上で作業は終了です。
ありがとうございました!

参考文献リスト