Как вывести git log только с первой строкой?

Я пытаюсь настроить формат git log. Я хочу, чтобы все коммиты были показаны в одной строке. Каждая строка должна показывать только первую строку сообщения фиксации.
Я!--11-->узнал это git log --pretty=short должен сделать трюк, но на моем компьютере он показывает полный журнал как git log делает (кроме штампа времени).

далее, я попытался использовать заполнители, как определено на странице руководства. Однако я не смог найти команду, чтобы сократить сообщение журнала. Я пробовал эту строку git log --pretty=format:'%h : %s' который показывает короткий хэш %hи полное в одну строку.

Я использую git version 1.7.3.1.msysgit.0 на Vista.


может, это как-то связано с тем, как я пишу свои сообщения. Вот пример:

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.

Итак, с приведенным примером я хочу только быть выходным Added some functionality. добавлено сокращенным хэшем.

7 ответов


вы пробовали это?

git log --pretty=oneline --abbrev-commit

проблема, вероятно, в том, что вам не хватает пустой строки после первой строки. Команда выше обычно работает для меня, но я только что протестировал на фиксации без пустой второй строки. Я получил тот же результат, что и вы: все сообщение в одной строке.

пустая вторая строка является стандартом в сообщениях фиксации git. Поведение, которое вы видите, вероятно, было реализовано намеренно.

первая строка не должна быть краткое описание. Если вы не можете сделать это в одной строке, вы можете использовать несколько, но git считает все перед первой пустой строкой "коротким описанием". oneline печатает все краткое описание, поэтому все ваши 3 строки.


тут git log --oneline делать то, что вы хотите?


лучше и легче git log, сделав псевдоним. Вставьте код ниже в terminal только один раз.

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

выход

git lg

выход измененные строки

git lg -p

Далее Reading.
https://coderwall.com/p/euwpig/a-better-git-log
Advanced Reading.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/


вы можете определить глобальный псевдоним, чтобы вызвать короткий журнал более удобным способом:

git config --global alias.slog "log --pretty=oneline --abbrev-commit"

затем вы можете вызвать его с помощью git slog (он даже работает с автозаполнением, если он включен).


без сообщений фиксации, только хэш:

git log --pretty=oneline | awk '{print }'

это распечатает только сообщение (только строка Темы) без хэша:

git log --pretty=format:%s

если вы хотите всегда использовать git log таким образом, вы можете добавить псевдоним git по

git config --global alias.log log --oneline

после этого git log напечатает то, что обычно печатается git log --oneline