git でバージョン管理されている多数のファイルに 1 つの簡単な変更を加えましたが、この大きなコミットに他の変更が含まれていないことを確認できるようにしたいと考えています。
変更はすべてフォームの
- "main()",
+ OOMPH_CURRENT_FUNCTION,
ここで、「main()」は任意の関数の名前にすることができます。この形式ではないすべての変更の差分を生成したいと考えています。
git diff の -G オプションと -S オプションは、興味をそそられるほど近いものです。文字列または正規表現に一致する変更を検出します。
これを行う良い方法はありますか?
これまでの試み
別の質問では、正規表現を否定する方法について説明しています。このアプローチを使用すると、コマンドは
git diff -G '^((?!OOMPH_CURRENT_FUNCTION).)*$'
しかし、これはエラーメッセージを返すだけです
fatal: invalid log-grep regex: Invalid preceding regular expression
したがって、git はこの正規表現機能をサポートしていないと思います。
また、標準の unix diff には、「すべての行が RE に一致する変更を無視する」 -I オプションがあることにも気付きました。しかし、git 自身の diff を unix diff ツールに置き換える正しい方法が見つかりません。