あるファイルを、

git rm --cached text.php

としてステージから削除したあとに、

git add -A

として、

git diff 

とすると、

old mode 100644
new mode 100755

と出てきました。色々ぐぐって

[core]
filemode = false

をconfigに追加すればパーミッションの変更が無視されて対処できることはわかったのですが、根本的な理由がわからず下記2つについて教えてほしいです。

①なぜステージから削除→再度ステージにupをするとパーミッションが変わるのか
②パーミッションが644→755に変わったと表示されているのにファイル自体をls -lでみてみると、パーミッションが-rw-r--r--になっており、755になっていない
③git diffで

 old mode 100644
 new mode 100755

と出てしまっているものを削除したい

どうぞよろしくお願い致します。

[環境]
ゲストマシン:centOS6.6をvagrantで実行。
ホストマシン:macOS
で、vagrantの中身をmacOSから(vagrant sshせずに)phpstormをつかっていじっている、という環境です。