Есть ли способ заставить git-reflog показывать дату рядом с каждой записью?
Команда git-reflog по умолчанию не показывает дату рядом с каждой записью, что кажется мне странным упущением; Я думаю, что это было бы очень полезно.
Существуют ли какие-либо параметры командной строки или другие настройки, которые можно использовать, чтобы он отображался при добавлении каждой записи reflog? Manpage не выйдет...
9 ответов
Как пишет страница руководства, вы можете использовать параметры для git log
, сказать git reflog --pretty=short
или любой другой, как вам нравится
пытаться
git reflog --date=iso
Вы можете использовать --walk-reflogs
вариант git log
:
git log -g
Это довольно многословно по умолчанию и печатает дату среди прочего. Вы можете отформатировать его со стандартным --pretty=
флаг.
Вы также можете использовать команду reflog напрямую с --pretty=
флаг для форматирования вывода.
git reflog --pretty='%cd %h %gd %gs'
В формате выше, %cd
показывает дату фиксации слева от нормального вывода reflog.
Вы должны использовать пользовательский формат:
git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'
В вышеуказанном формате %h
это хеш коммита, %cr
это относительная дата коммиттера, %gs
является предметом рефлога, и, %s
является предметом фиксации. Посмотрите на документы git-log для других возможных заполнителей. Например, используя %ci
вместо %cr
покажет абсолютные даты фиксации.
Вы можете сохранить это в вашем ~/.gitconfig используя пользовательский pretty
форматировать и ссылаться на него через псевдоним:
[alias]
rl = reflog --pretty=reflog
[pretty]
reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)
Если вы просто хотите увидеть даты относительно текущего времени, вы можете использовать следующую команду:
git reflog --date=relative
Чтобы сэкономить время на вводе текста, вы можете создать для него псевдоним git (
rl
- Короче для
reflog
):
git config --global alias.rl "reflog --date=relative"
Вместо этого используйте псевдоним, например, так (
-5
в конце - показать последние 5 действий):
git rl -5
Расскажи git
в каком формате либо засчитывается reflog
Записи или время reflog
записи, т.е.
$ git reflog @{now}
$ git reflog @{0}
Примечание Git 2.10 (3 квартал 2016 года) улучшает документацию о дате с git reflog
,
См. Коммит 642833d, коммит 1a2a1e8 (27 июля 2016 г.) и коммит d38c7b2, коммит 522259d, коммит 83c9f95, коммит 2b68222 (22 июля 2016 г.) Джеффом Кингом ( peff
)
Помогает: Джефф Кинг ( peff
)
(Объединено Юнио С Хамано - gitster
- в коммите 0d32799, 8 августа 2016 г.)
rev-list
параметры обновлены:
Обозначение reflog в выходных данных может быть показано как
ref@{Nth}
(гдеNth
обратный хронологический индекс в журнале) или какref@{timestamp}
(с отметкой времени для этой записи), в зависимости от нескольких правил.
Включает в себя:
- обновление о --date=raw
:
показывает дату в секундах с начала эпохи (1970-01-01 00:00:00 UTC), затем пробел, а затем часовой пояс в виде смещения от UTC (a
+
или же-
с четырьмя цифрами; первые два часа, а вторые два минуты).
Т.е. как будто отметка времени была отформатирована сstrftime("%s %z")
).
Обратите внимание, что-local
опция не влияет наseconds-since-epoch
значение (которое всегда измеряется в UTC), но переключает соответствующее значение часового пояса.
И новый вариант: --date=unix
показывает дату как метку времени эпохи Unix (секунды с 1970 года).
Как с--raw
это всегда в UTC и, следовательно,-local
не имеет никакого эффекта
Отформатируйте вывод как
glol
с охмызш:
git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%cr) %C(bold blue)<%an>%Creset'
Отформатируйте
git reflog
вывод как
glod
с охмызш:
git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%ad) %C(bold blue)<%an>%Creset'
Я сделал собственный плагин git-mnz для ohmyzsh с этими двумя псевдонимами
grlol
,
grlod
и некоторые другие псевдонимы и функции.
** Извините, если не отправили PR в плагин git, но есть сотни PR, ожидающих объединения ..
git reflog --pretty=medium
... но из-за них это действительно неприятно (нет завершения bash для параметров git-log,
log
страница руководства не документирует строки-заполнители для различных довольно встроенных профилей, плюс есть некоторые отличия от стандартных
git-log
формат, например, вам нужно будет передать
--abbrev
)