その他

【Git】Gitでフォルダの大文字・小文字を区別・ハマった時の対処方【Case Sensitive】

その他
この記事は約2分で読めます。

はじめに

知らないとハマることがあります。例えば以下のような場合です。

  • Gitで大文字・小文字を区別して管理したい
  • 小文字のフォルダ名の一部を大文字に変更したい

Configに設定

以下のコマンドを実行することで、Gitをcase-sensitiveにすることができます。

$ git config core.ignorecase false

しかしながら、これだけでは解決しないこともあります。

フォルダ・ファイル名の変更 -> リモート

以下の場合、個人の設定では防げない問題が発生することがあります。

  • GitHubやGitLabなどのサービスでソース管理を行う場合
  • 複数人での開発の場合

フォルダ名の変更を差分としてPushしたつもりでも、他の人にはその差分がうまく取り入れられない場合があります。


例えば、GitLabからクローンしたプロジェクトで、
nestedfolderというフォルダ名を`nestedFolerとキャメルケースに直したい場合。

フォルダ名のみを修正しPushすると、GitLab上では差分が出ているように見えますが、別の人がPullしてもフォルダ名が変更されていないことがあります。

Gitでうまく管理できていないフォルダ名は、モジュールのimportの際などに重要な問題を引き起こすこともあり危険です。

対策

こうした問題を避ける最も簡単な方法は、ファイルの中身に必ず差分を作ることです。

ファイル名やフォルダ名のみを変更することはせず、例えばコメントを入れるなどしてファイルの中身に差分を作ります。