CIとかでとあるファイルに差分があった場合のみ特定の処理を実行したい時とかあると思います。
実際にあるか不明ですが、下記はカレントブランチとmasterブランチの間でdb/schema.rbに差分が合った場合
echoするシェルスクリプトの例になります。
if test $(git diff origin/master --name-only | grep db/schema.rb | wc -l) -ne 0; then
echo 差分がありました
fi
解説
git diffに--name-onlyオプションをつけることで差分があったファイル名一覧を出すことができます。
git diff origin/master --name-only
それを差分を知りたいファイル名でgrepし、その結果の行数をwcコマンドで出しています。
行数が0だったら差分なし、0じゃない場合は差分があるものとして検知しています。