Может быть, вы можете решить это с помощью опции --word-diff-regex
. Вот что я сделал: я создал простой файл и зафиксировал его со следующим содержимым.
first line
second line
third line
Затем я изменил это так:
first line;
second; line;
third changed line;
Если я правильно понял, вам нужно показать только следующие отличия:
второй -> второй;
третья строка -> третья измененная строка
Вы можете частично сделать это, выполнив:
git diff --word-diff-regex='[^ \\n;]+' HEAD..HEAD~1
И это вывод:
first line
second line
third[-changed-] line
Я сказал частично, потому что даже если я нашел регулярное выражение, чтобы обнаружить и первое изменение ('[^ \\n]+(?!\\n|$)'
), git, похоже, не принимает его, по какой-то причине я не знаю (я все еще работаю над этим).
В любом случае, логика заключается в том, что эта опция «переопределяет» то, как git считает слово. Я знаю, что это неправильное регулярное выражение, поскольку оно не охватывает несколько случаев, измените его в зависимости от ваших потребностей (например, если вы считаете test1;test2
словом).