2015-02-20 1 views
1

Я использую git log, чтобы посмотреть на изменения, которые затрагивают конкретный подкаталог:Как я могу ограничить журнал фиксацией, которая повлияла на данный путь, но увидеть * все * изменения, сделанные в этих коммитах?

git log -p <dirname> 

Это показывает мне, что совершает влияет на этот каталог, но любые другие изменения в то же коммит не показаны. Я хочу их увидеть: это такие вещи, как исправления Makefile верхнего уровня.

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

ответ

1

Run

git log -p `git rev-list HEAD -- <path>` 

где <path> соответствует файлу/директории интереса (спасибо Торек).

В основном,

git rev-list HEAD -- <path> 

создает список изменений, которые затрагивают <path>, которые вы затем передать этот список git log -p с помощью подстановки команд.

+1

Я не думаю, что это то, чего он хочет - он хочет выбрать идентификаторы фиксации с точки зрения «всех коммитов, которые касаются файла в пределах данного подкаталога», но затем посмотрите на журнал фиксации и diff для этих коммитов, без ограничения «данного подпути». Внутренний 'git log -n 1' найдет только первую такую ​​фиксацию. Поэтому я думаю, что он хочет «git log -p --no-walk $ (git rev-list - dirname)». – torek

+0

@torek Вы правы, как всегда :) – Jubobs

Смежные вопросы