Как подавить пустые строки в формате git log pretty? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь расширить формат git log --oneline, чтобы показать немного больше информации, в частности, о коммитере и времени фиксации.

Исходная команда git log --oneline --name-status и выдает следующие выходные данные:

enter image description here

Я продублировал этот формат с дополнительной информацией как git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)', и он выдает такой вывод:

enter image description here

То, что я хочу сделать, - это убрать пустые строки между записями журнала, но не могу найти опцию, чтобы удалить ее, и почему она вставляется.Единственное отличие здесь в том, что я использую симпатичный формат.

ОБНОВЛЕНИЕ: кажется, что обходного пути нет, поэтому я адаптировал решение Kjele.Передача выходных данных теряет информацию о цвете, которую я действительно хотел, поэтому я принудительно установил ее с -c color.ui = always.

Это окончательная версия, которая делает то, что я хотел:

git log ${REV}..HEAD --oneline --name-status -c color.ui=always --pretty=format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr) | sed '/^\s*$/d'

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете передать свою команду в:

sed '/^\s*$/d'

git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)' |  sed '/^\s*$/d'

, но это не позволит вам прокрутить вниз, как вы это обычно делаете.

В качестве обходного пути можно выбрать желаемое количество коммитов.:

-n 10

git log --oneline --name-status --pretty='format:%C(yellow)%h %C(auto)%d %s %C(red)(%cn, %cr)' -n 10 |  sed '/^\s*$/d'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...