git diffでリネームの追跡
gitはファイル名の変更を管理しないという説明が多々見受けられるけれども、git mv コマンドは何をやってるんだろう。
ブランチでごっそり書き換えた場合なんかは
git diff --stat=180,150 -M master..
などとやると見やすい。
git ls-files | xargs -l git diff --numstat --follow master.. | grep -v "0 0"
とかやるところだった…。
オプションの --follow はファイル名を指定する必要があるけれど -M は複数でも大丈夫。何が違うんだろう。
git rm の後に同じ内容で別のファイル名を git add しても、commit時にはrenameと判別される。