azukipochette's weblog

memory dump (mini)

空白の変更を無視して本当に変更されたファイルだけを git add する方法

社内的には Git リポジトリとしてコード管理しているが、お客様には git リポジトリをそのまま渡したくないので export したものをご提供。後日、お客様から改修依頼があって、現状のコードを送って git status したら大量の変更が!...しかし、git diff すると空白が違うだけのファイルばかり...というときに本当に変更されたファイルだけを git add したい、そういう話です。

この問題は、以下のコマンドで解決できます。

git diff -U0 -w --no-color | git apply --cached --ignore-whitespace --unidiff-zero -

alias として登録して登録する場合は以下のコマンドを実行します。

ユーザー単位で設定するなら --global、システム単位で設定するなら --system オプションをつけてください。

git config alias.addnw=!sh -c 'git diff -U0 -w --no-color "$@" | git apply --cached --ignore-whitespace --unidiff-zero -

参考

参考というか、ここの回答をそのまま書いたようなものなんですが...備忘録を兼ねて書きました。

では、よい git add 生活を。Enjoy!