Существуют различные способы «выбора» коммитов с помощью git log. Например:
и многих других.
Однако все они показывают только коммиты, выбранные для командной строки. Я хочу видеть все коммиты в моем диапазоне, но выделите (цветом, маркером или чем-то еще) конкретное подмножество c этих коммитов, например коммиты, которые изменили конкретный файл или без разницы. Поэтому при выполнении:
git log --oneline master..@ -- path/to/frobnitz
вместо просмотра:
12ca6d863 foo
6166da1fd bar
894567343 baz
я бы увидел что-то вроде:
46984ad11 (HEAD -> master) git is fun!
2e11a5382 cool beans
>> 12ca6d863 foo
60069036d whatever
d698663d0 something
>> 6166da1fd bar
3d2c811e3 more cool stuff
>> 894567343 baz
3d2c811e3 cool stuff
Кроме того, идеально решение будет работать в режиме --graph
, потому что я также хочу видеть контексты слияния и ветвления выбранных коммитов.
Также отмечу, что git log
поддерживает различные сценарии Упрощение истории ios, что в некоторых случаях дает мне почти то, что я хочу, но не легко понять, как, да и не совсем то, что я хочу. У меня уже есть история, которую я хочу увидеть, и у меня уже есть коммиты, которые я хочу выделить.
Некоторые идеи у меня были, но мне не нравится ни одна из них:
Script it - запустите два git журнала, а затем используйте выходные данные одного для украшения / манипулирования другим. Недостатком этого является то, что он хрупкий, и он не будет хорошо работать для различных наборов опций, которые я мог бы предоставить целевому журналу, например --graph
Для «выбранных» коммитов, присвойте им временные ссылки, например, selectedcommits
, а затем используйте --decorate-refs=selectedcommits
, чтобы показать соответствующие коммиты. Это кажется грязным.