Windows で Git
Windows で Git を使うと改行コードとパーミッションの問題にぶち当たると思います。今回はパーミッションの話です。
0755 が 0644 に変わっているものとして変更が検知される
Windows で Git を扱っていると、ファイルの中身は何も変わっていないのに更新が検知されることがあります。このときはまず間違いなくパーミッションの問題だと思います。
試しに diff
すると分かりますが、0755 であるファイルが 0644 として変更が検知されています。
old mode 100755 new mode 100644
防止方法
これを防ぐには git
の config
ファイル内で以下のように指定します。
[core] filemode = false
コマンドラインから指定する場合(特定のリポジトリのみ適用)は以下のようにします。
$ git config core.filemode false
自分の全てのリポジトリに対して指定する場合は --global
オプションをつけてやります。
$ git config --global core.filemode false
しかし……
これ、もしこのオプションを指定するならば、全てのプラットフォームで行わなければいけません。すなわち、Linux と Windows が入り乱れている開発状況では、全てで filemode
を false
とする必要があります。
そのようにすることは賛否あるとは思います。しっかりと統一しておくことが必要でしょう。