【メモ】ファイルを変更していないはずなのにgit pullでmerge出来ない場合


masterブランチしかなく、作業者が自分1人しかおらず、ファイルの変更は手元の端末でしか行っていなくて、かつ、プログラムが書き換える可能性もないファイルを更新しようとしているのに、なぜか、

error: Your local changes to the following files would be overwritten by merge:
index.html
Please, commit your changes or stash them before you can merge.
Aborting

と出てmergeに失敗する。

おかしいなあと思っていたんですけど、これ、gitがファイルのパーミッションの変化を「変更あり」と検知してしまうからだそうです。vagrantの設定のせいか、手元のファイル(Mac)とvagrant上のファイルとでパーミッションが変わっているということなのかも知れません。

これを解決するには、パーミッションの変化を無視するように設定してやれば良いようです。

git config core.filemode false


なるほどね。手元がWindowsだったりするともっと顕著に出るかも。