'git diff': Показать только diff для файлов, которые существуют в обоих коммитах - PullRequest
19 голосов
/ 04 августа 2011

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

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

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

1 Ответ

26 голосов
/ 04 августа 2011

Следующее может делать то, что вы хотите:

git diff --diff-filter=M commitA commitB

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

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

git diff --name-status commitA commitB

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...