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

記事内に商品プロモーションを含む場合があります。
2020.1.16 534 views

はじめに

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

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

関連記事