git config core.filemode falseは設定しないほうが良い理由

git config core.filemode falseは設定しないほうが良い理由

git config core.filemodeとは

Gitのパーミッション変更に関する設定。

デフォルトだとtrueになっており、こちらがfalseになっていない場合、パーミッションが755になっていたりすると644に自動的に変換されたりする。

なぜ設定しないほうが良いのか

1人で使用している場合は問題がないことが多いが複数人で作業している場合、パーミッションがGitの設定により、「変更される人」と「変更されない人」が混在してしまうため、作業に支障をきたす可能性があるため。

パーミッションが変更された場合

ファイルの中身は変更していないのにパーミッションだけが変更されて差分が出てしまう場合は、chmodを使用すれば差し戻して差分をなしにできる。

# 644 => 755 に戻したい場合
$ chmod 755 foo.html

パーミッションの確認方法

一般的には

ls -l

で確認されることが多いが、Gitを使用している場合は

git ls-files -s

を使用することで以下のように表示される。

100644 0785302f0dbcbbad93428ec12c6f78803c94b702 0	index.html
100644 3498d5d985d8a97bfed31a92ea059a03d1948f82 0	foo.html
100755 27eb90dfb01df4898d291667483f3f2f02624147 0	bar.html

ただし、git ls-files -sで確認できるパーミッションは追跡されているファイルのみだ。

カテゴリーgit