git windowsでファイルの内容を変更していないのに変更がたくさん検知された

2020.1.16

はじめに

macで編集したりWindowsで編集していると、Windows側で内容を変更していないファイルが変更したファイルとして検知されてしまったので対処方法を紹介します。

検知された内容

普段、エディターはvscodeを使っています。

ある時、vscodeのソース管理画面でソースの変更を確認すると、変更ファイルが大量に検知されていました。

変更内容を見てみると特に変更した箇所もなく、改行コードかなと思いましたが、そうでもないようでした。

git bashを使ってgit diffを実行して出力内容を見ると、下記のような内容がありました。

old mode 100755
new mode 100644

どうやら、ファイルのパーミッションに変更があるようです。

WindowsとLinux系のOSではパーミッションの設定が違う。

というのが原因のようです。

ファイルモードの変更を無視する

私の環境ではWidows側でパーミッションの変更を無視するように設定します。

git config --global core.filemode false

このコマンドを実行することで、ファイルモードの変更を無視するように.gitconfigに書き込まれます。

うまく設定が反映されない場合は、ローカルコンフィグの設定が有効になっている場合があります。

一度、設定をクリアしてもう一度実行してみるとうまくいきます。

git config --unset core.filemode
git config --global --unset core.filemode

もう一度、下記のコマンドを実行する。

git config --global core.filemode false

これでファイルモードの変更が無視されるようになりました。

Related.