巨大なファイルを誤ってコミットし、レポジトリを肥大化させると大変です。何度も事故を起こしたのでステージに乗ったファイルを大きい順に表示するコマンドを組みました。
結論
git status --porcelain | grep ^[AM] | sed -e "s,^\S ,,g" | xargs -r ls -hsS
このコマンドを打つとgit add したファイルを容量が大きい順に並べて表示してくれます。便利。
git status
からgrep
で変更するファイルを抜き出し、sed
でパスだけ抽出し、ls
で容量順に表示しているだけです
使用例
$ git status --porcelain | grep ^[AM] | sed -e "s,^\S ,,g" | xargs -r ls -hsS
29M wave-propagation-h135-correct-2/OUTPUT/XUDISA.DAT
29M wave-propagation-h135-correct-2/INPUT/XUDISA.DAT
4.4M wave-propagation-h135-correct-2/OUTPUT/TYPEMOVE.DAT
4.4M wave-propagation-h135-correct-2/INPUT/TYPEMOVE.DAT
2.7M wave-propagation-h135-correct-2/OUTPUT/REALTIME.XUD
...
左がファイルサイズ、右がパスです。29MBの大きいファイルをgit add
してしまったことにすぐ気づけますね。