Я пытаюсь настроить формат для git log
. Я хочу, чтобы все коммиты отображались в одной строке. Каждая строка должна показывать только первую строку сообщения коммита.
Я узнал, что git log --pretty=short
должен сделать трюк, но на моем компьютере он показывает полный журнал, как git log
и (кроме отметки времени).
Кроме того, я попытался использовать заполнители, как определено на странице руководства . Хотя я не смог найти команду, чтобы сократить сообщение журнала. Я попробовал эту строку, git log --pretty=format:'%h : %s'
которая показывает закороченный хэш %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.
только перед кратким хешем.
%s
это тема, а не полное сообщение.short
Формат не на одной линии, хотя (сюрприз!)oneline
Есть. Еслиoneline
и%h : %s
не то, что вы хотите, что с ними не так? В частности,%s
это тема, первая строка сообщения коммита. Это действительно должна быть сокращенная версия. Возможно ли, что вы делали коммиты с одной длинной строкой для сообщения и просматривали их как-то с переносом слов?oneline
и%s
не выводить то, что мы ожидаем, по крайней мере, на моем компьютере. Я обновил свой пост примером моего сообщения коммита. Может быть, это поможет.Ответы:
Вы пробовали это?
Возможно, проблема в том, что вы пропустили пустую строку после первой. Приведенная выше команда обычно работает для меня, но я только что протестировал коммит без пустой второй строки. Я получил тот же результат, что и вы: все сообщение в одной строке.
Пустая вторая строка является стандартом в сообщениях git commit. Поведение, которое вы видите, возможно, было реализовано специально.
Первая строка сообщения о фиксации предназначена для краткого описания. Если вы не можете сделать это в одной строке, вы можете использовать несколько, но git считает все, что находится до первой пустой строки, «кратким описанием».
oneline
печатает все краткое описание, так что все ваши 3 строки.источник
git log
в сценарий фильтрации, но я бы действительно рекомендовал написать краткое описание с пустой строкой.git log --oneline
--oneline - это встроенное сокращение для "--pretty = oneline --abbrev-commit", используемое вместе.cut
. Это было быawk
осторожно ... (Кстати, математика В: каковы шансы, что следующий бит в правильно закодированной последовательности Хаффмана, на уровне хранения, включен или выключен? Подсказка: это === 50%.)%
для'%s'
. C-;Делай
git log --oneline
что хочешь?источник
Лучше и проще сделать git log, сделав псевдоним . Вставьте приведенный ниже код в терминал всего один раз за один сеанс. Вставьте код в профиль zshrc или bash, чтобы сделать его постоянным.
Вывод
Вывод измененных строк
В качестве альтернативы (рекомендуется)
Вставьте этот код в глобальный файл .gitconfig.
Дальнейшее чтение.
https://coderwall.com/p/euwpig/a-better-git-log
Расширенное чтение.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
источник
git log --color --graph --pretty=format:"%%Cred%%h%%Creset -%%C(yellow)%%d%%Creset %%s %%Cgreen(%%cr) %%C(bold blue)<%%an>%%Creset" --abbrev-commit %1
. Вы можете передать -p в этот файл летучих мышей, чтобы также получить измененные строкиЭто распечатает только сообщение (только тему) без хеша :
источник
%s
для предмета;%b
для тела;%B
для обоих («сырое тело» в git-scm.com/docs/pretty-formats )Вы можете определить глобальный псевдоним, чтобы вы могли вызывать короткий журнал более удобным способом:
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
Затем вы можете вызвать его с помощью
git slog
(он даже работает с автодополнением, если он у вас включен).источник
Без коммитов, только хеш:
источник
git log --pretty=format:"%H"
git rev-list HEAD
.если вы хотите всегда использовать
git log
таким образом, вы можете добавить псевдоним git с помощьюgit config --global alias.log log --oneline
после этого
git log
напечатает то, что обычно будет напечатаноgit log --oneline
источник
"log --oneline"
).