Windows 環境で Git を使う場合はパーミッションを無視すると煩わしくない(が……)

Windows で Git

Windows で Git を使うと改行コードとパーミッションの問題にぶち当たると思います。今回はパーミッションの話です。

0755 が 0644 に変わっているものとして変更が検知される

Windows で Git を扱っていると、ファイルの中身は何も変わっていないのに更新が検知されることがあります。このときはまず間違いなくパーミッションの問題だと思います。

試しに diff すると分かりますが、0755 であるファイルが 0644 として変更が検知されています。

old mode 100755
new mode 100644

防止方法

これを防ぐには gitconfig ファイル内で以下のように指定します。

[core]
  filemode = false

コマンドラインから指定する場合(特定のリポジトリのみ適用)は以下のようにします。

$ git config core.filemode false

自分の全てのリポジトリに対して指定する場合は --global オプションをつけてやります。

$ git config --global core.filemode false

しかし……

これ、もしこのオプションを指定するならば、全てのプラットフォームで行わなければいけません。すなわち、Linux と Windows が入り乱れている開発状況では、全てで filemodefalse とする必要があります。

そのようにすることは賛否あるとは思います。しっかりと統一しておくことが必要でしょう。

Powered by はてなブログ