Gitでファイルのパーミッションを変更しただけで”ファイルを変更した”扱いになってしまうときの対処法

Unix系の環境でGitの操作をした際、権限を変更しただけで”ファイルを変更した”扱いになってしまうことがあります。

例:

chmod 755 -R hoge
cd hoge
git diff

diff --git a/API/.editorconfig b/API/.editorconfig
old mode 100644
new mode 100755
diff --git a/API/.env.example b/API/.env.example
old mode 100644
new mode 100755
diff --git a/API/.gitattributes b/API/.gitattributes
old mode 100644
new mode 100755
diff --git a/API/.gitignore b/API/.gitignore
old mode 100644
new mode 100755
diff --git a/API/app/Console/Kernel.php b/API/app/Console/Kernel.php
old mode 100644
new mode 100755
diff --git a/API/app/Exceptions/ApiException.php b/API/app/Exceptions/ApiException.php
old mode 100644
new mode 100755
diff --git a/API/app/Exceptions/Handler.php b/API/app/Exceptions/Handler.php
old mode 100644
new mode 100755
diff --git a/API/app/Http/Controllers/Auth/ForgotPasswordController.php b/API/app/Http/Controllers/Auth/ForgotPasswordController.php
old mode 100644
new mode 100755
...

プログラムの動作上、権限の変更が必要になることがあるのですが、そのたびに変更の取り消しを行うのは面倒ですし、ローカルでファイルの変更を行っていたりするとさらにややこしくなる可能性があります。

実は、Gitで権限の管理を無効化する方法が標準で用意されているので、設定を行うだけで権限の変化をししてくれるようになります。

git config core.filemode false

として

git diff

を実行すると、権限の変更を行っても検知されなくなっているのがわかるかと思います。

お困りの方は是非参考にしてみてください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG