Ответы:
Есть несколько вариантов красивой печати даты. Вероятно, самый простой - просто использовать один из предварительно запеченных --pretty
форматов, например git log --pretty=fuller
- это покажет обе даты. Если вы хотите видеть только одну дату, но сделать ее датой фиксации, вы можете использовать git log --format=<some stuff>
. Все допустимые коды для определения формата задокументированы в git help log
. Фиксации дата является одним из %cd
, %cD
, %cr
, %ct
или %ci
, в зависимости от того, какого формата вы предпочитаете его.
Если это то, что вы хотите делать часто, укажите это в псевдониме или напишите вспомогательный скрипт, чтобы сэкономить на вводе.
Вы можете использовать --pretty=format
и использовать %cr
для относительной даты фиксации.
Например:
$ git log --graph --pretty=format:'%C(auto)%h%d (%cr) %cn <%ce> %s'
Вы можете определить псевдоним в git, чтобы упростить его использование. У меня в наличии есть .gitconfig
:
[alias]
# see `git help log` for detailed help.
# %h: abbreviated commit hash
# %d: ref names, like the --decorate option of git-log(1)
# %cn: commiter name
# %ce: committer email
# %cr: committer date, relative
# %ci: committer date, ISO 8601-like format
# %an: author name
# %ae: author email
# %ar: author date, relative
# %ai: author date, ISO 8601-like format
# %s: subject
# my awesome git log replacement
lol = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s\"
# same as above, but ISO date
lold = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(green)%cn <%ce>%Creset %s\"
# using build-in standards
lol2 = log --oneline --graph --decorate
# shows branches and their last commits
lol3 = log --all --graph --decorate --oneline --simplify-by-decoration
В Linux или аналогичных системах вы можете использовать одинарные кавычки '
вместо двойных кавычек "
:
[alias]
lol = log --graph --pretty=format:'%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s'
С этим просто запустите git lol
или другие варианты, чтобы увидеть красивый результат.
Вот результат git lol --simplify-by-decoration
:
lol
легче набирать log
, и звучит лучше.
git log
если вам когда-нибудь понадобится.Вот результат git lold
с датами в формате ISO. Полезно для просмотра точной даты / времени совершения фиксации, с бонусом в виде возможности легко увидеть часовой пояс участника.
Изменить 2020-06 : добавлены скриншоты. Обновлено для использования %C(auto)
(авто / раскраска по умолчанию) для %h
(хеш фиксации) и %d
(имена ссылок). Добавлено %cn
(имя коммитера) в дополнение к электронной почте.
git log --graph --pretty=format:\"%C(yellow)%h%Creset%C(cyan)%C(bold)%d%Creset %C(cyan)(%cr)%Creset %C(green)%ce%Creset %s\"
bash: синтаксическая ошибка рядом с неожиданным токеном `('
Я предпочитаю этот формат, без имени автора и фактической даты фиксации.
git log --graph --pretty=format:"%C(yellow)%h%x09%Creset%C(cyan)%C(bold)%ad%Creset %C(green)%Creset %s" --date=short
git show --pretty=fuller HEAD
для примера). Для локальной разработки они обычно одинаковы, но для исправлений, добавленных по электронной почте или с помощью других механизмов, они могут отличаться, где AuthorDate - это дата создания исправления, а CommitDate - это время, когда оно было фактически применено к репозиторию.