git windowsでファイルの内容を変更していないのに変更がたくさん検知された
はじめに
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
これでファイルモードの変更が無視されるようになりました。