Как выводить журнал git только с первой строкой?

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

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

Я использую 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., добавленный хэшем shortend.

Ответ 1

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

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

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

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

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

Ответ 2

Выполняет ли git log --oneline то, что вы хотите?

Ответ 3

Улучшить и easier журнал git, создав псевдоним alias. Вставьте приведенный ниже код в терминал всего один раз за один сеанс. Вставьте код в профиль zshrc или bash, чтобы сделать его постоянным.

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

В качестве альтернативы (рекомендуется)
Вставьте этот код в глобальный файл .gitconfig

[alias]
  lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

Дальнейшее чтение.
https://coderwall.com/p/euwpig/a-better-git-log
Расширенное чтение.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/

Ответ 4

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

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

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

Ответ 5

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

git log --pretty=format:%s

Ответ 6

Без коммит-сообщений, только хеш:

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

Ответ 7

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

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

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