Git diff: Показать только diff для файлов, которые существуют в обеих коммитах

Есть ли способ использовать git diff, чтобы получить разницу между двумя коммитами, но показывать только diff для файлов, которые существуют в обеих коммитах?

У меня есть ветвь, которую я создал пару недель назад, и наш основной код уже немного от нее отстал. В результате, если я выполняю разницу между моим текущим HEAD и кончиком старой ветки, я получаю десятки измененных файлов, но в основном это просто шум.

То, что я действительно хочу видеть, - это diff, который показывает только файлы, которые существуют в обеих ветвях. Я знаю, что одним из способов сделать это будет вишня - выбрать, что другая ветка берет верх над текущей HEAD, но есть ли способ сделать это, просто используя git diff?

Ответы

Ответ 1

Выполняет ли то, что вы хотите?

git diff --diff-filter=M commitA commitB

Опция M для --diff-filter говорит только о том, чтобы включать файлы, которые могут быть изменены между двумя коммитами: те, которые существуют только в одной ветки или другой, будут выбраны с помощью A ( "добавлено" ) или D ( "deleted" ).

Вы можете видеть, какие файлы будут выбраны с этими буквенными кодами, выполнив:

git diff --name-status commitA commitB

... и есть дополнительная информация обо всем этом в документации git diff.