Я сделал одно простое изменение для большого количества файлов с версией, контролируемой в git, и я хотел бы иметь возможность проверить, что никакие другие изменения не скользят в эту большую фиксацию.
Все изменения имеют форму
- "main()",
+ OOMPH_CURRENT_FUNCTION,
где "main()" может быть именем любой функции. Я хочу создать diff всех изменений, которые не относятся к этой форме.
Параметры -G и -S для git diff туманно близки - они находят изменения, которые соответствуют строке или регулярному выражению.
Есть ли хороший способ сделать это?
Попытки до сих пор
Другой question описывает, как можно переопределять регулярные выражения, используя этот подход, я думаю, что команда должна быть
git diff -G '^((?!OOMPH_CURRENT_FUNCTION).)*$'
но это просто возвращает сообщение об ошибке
fatal: invalid log-grep regex: Invalid preceding regular expression
поэтому я предполагаю, что git не поддерживает эту функцию регулярного выражения.
Я также заметил, что стандартный unix diff имеет параметр -I для "игнорировать изменения, строки которых соответствуют RE". Но я не могу найти правильный способ заменить git собственный diff с помощью инструмента unix diff.