Как выводить журнал 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