У меня есть коммит c. Я хочу получить ревизию этого точного коммита с + метаинформации и никого другого. Есть ли более простой способ, чем git log -p c^..c
сделать это?
181
Ответ Михала Трыбуса - лучший для простоты. Но если вам не нужен diff в выходных данных, вы всегда можете сделать что-то вроде:
git log -1 -U c
Это даст вам журнал коммитов, и вы получите полный контроль над всеми опциями git logging для ваших целей автоматизации. В вашем случае вы сказали, что хотите изменить набор. Самый понятный способ сделать это:
git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c
Или, если вы используете версию git больше, чем 1.8.X, это будет:
git log --name-status --diff-filter="ACDMRT" -1 -U c
Это даст вам результаты, похожие на:
commit {c}
Author: zedoo <zedoo@stackoverflow.com>
Date: Thu Aug 2 {time-stamp}
{short description}
D zedoo/foo.py
A zedoo/bar.py
Конечно, вы можете отфильтровать любые события, которые сочтете нужным, и отформатировать возвращаемый результат по своему желанию с помощью традиционных команд git-log, которые хорошо описаны здесь .
git show --name-only <sha1>
!git show -s <commit>
.-1
? Где это задокументировано?git help log
разделе «Ограничение коммитов ». Или посмотрите git-scm.com/book/en/v2/…-<number>
ограничивает количество коммитов для вывода.git log -p c -1
делает именно это.источник
-n 1
или--max-number=1
и документировано .Вы можете использовать для фильтрации изменений по описанию коммита:
где
git log --grep='part_of_description'
выберите коммиты, которые содержат 'part_of_description' и-p
покажите набор изменений каждого коммитаисточник