2016-04-28 2 views
5

Я пытаюсь работать с командой diff diff, и у меня все работает ... За исключением форматирования. Я могу использовать --pretty=oneline для отображения только необходимой информации, кроме того, что она отображает полный хеш и не раскрашивает результат.Exclude Preceding Commit> line from git rev-list format

Так что бы просто выход это:

fa73c05913292fbce940075fc8f454bad5066666 Example Commit Message 
de4dbeffa249393dddebb7b13ae555cb97cad5be Another Example Commit Message 

Если я пытаюсь сделать строку пользовательского формата, например, как это: --pretty="format:%C(yellow)%h%C(reset) %s", он работает, но он также отображает дополнительную строку над ним.

E.g.

commit >fa73c05913292fbce940075fc8f454bad5066666 
fa73c05 Example Commit Message 
commit >de4dbeffa249393dddebb7b13ae555cb97cad5be 
de4dbef Another Example Commit Message 

Есть ли способ иметь git rev-list выход формат, без предшествующих commit >abcdef3... линий?

+2

'git rev-list' и' git log' - это по сути одна и та же команда, за исключением форматирования вывода и того факта, что 'git log' будет начинаться с' HEAD', если не задана начальная точка. Следовательно, 'git log -format = ... <дополнительные аргументы rev-list>' будет делать трюк здесь. – torek

+0

@torek Ahh, это сработает. Мне просто нужно отделить аргументы с помощью '..', с которым я очень затруднился. Мне удалось получить его в 'git rev-list branch-name .. | sed -e 1b -e '$! d' | sed -e "s/\ n /../" ", но это не работает. –

+1

Что именно вы хотите, чтобы эта команда «diff diff» в любом случае? Он может быть уже представлен как один из многих швейцарских армейских бензоколонков git (без средств защиты от пальмового) ... – torek

ответ

2

Чтобы оставить ответ для тех, кто придет следующий/

@torec отметил в своем комментарии следующее:

git rev-list и git log, по существу, ту же самую команду

Ответ должен использоваться следующий формат:

# print out the log history in the desired format. 
git log --pretty="format:..." <SHA-1>