Есть ли способ заставить git -reflog показать дату рядом с каждой записью?

Команда git -reflog по умолчанию не показывает дату рядом с каждой записью, которая выглядит как странный недосмотр; Я думаю, что это будет очень полезно.

Существуют ли какие-либо параметры командной строки или другие настройки, которые могут быть использованы, чтобы заставить его показывать, когда была добавлена ​​каждая запись reflog? manpage не поступает...

Ответ 1

В качестве записи на странице man вы можете использовать опции git log, например git reflog --pretty=short или любые другие, как вам нравится

попробовать

git reflog --date=iso

Ответ 2

Вы можете использовать вариант --walk-reflogs git log:

git log -g

Это довольно подробно по умолчанию, и печатает дату среди прочего. Вы можете отформатировать его с помощью стандартного флага --pretty=.

Вы также можете использовать команду reflog напрямую с флагом --pretty= для форматирования вывода.

git reflog --pretty='%cd %h %gd %gs'

В вышеприведенном формате %cd показывает дату фиксации слева от обычного вывода reflog.

Ответ 3

Расскажите git, в каком формате либо подсчитаны записи reflog, либо временные записи reflog, т.е.

$ git reflog @{now}

$ git reflog @{0}

Ответ 4

Вы должны использовать пользовательский формат:

git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'

В приведенном выше формате %h - хеш фиксации, %cr - относительная дата коммиттера, %gs - объект reflog, а %s - объект фиксации. Посмотрите git -log docs для других возможных заполнителей. Например, использование %ci вместо %cr будет показывать абсолютные даты фиксации.

Вы можете сохранить это в ~/.gitconfig с помощью пользовательского формата pretty и обратиться к нему через псевдоним:

[alias]
    rl = reflog --pretty=reflog
[pretty]
    reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)

Ответ 5

Примечание git 2.10 (Q3 2016) улучшает документацию о дате с помощью git reflog.

См. commit 642833d, commit 1a2a1e8 (27 июля 2016) и commit d38c7b2, commit 522259d, commit 83c9f95, совершить 2b68222 (22 июля 2016 г.) Джефф Кинг (peff).
Помог: Джефф Кинг (peff).
(объединено Junio ​​C Hamano - gitster - в commit 0d32799, 08 августа 2016 г.

Обновлены параметры rev-list:

Обозначение reflog на выходе может быть показано как [email protected]{Nth} (где Nth - это обратный хронологический индекс в рефлоге) или как [email protected]{timestamp} (с меткой времени для этой записи), в зависимости от нескольких правил.

Он включает в себя: - обновление о --date=raw:

показывает дату в секундах с эпохи (1970-01-01 00:00:00 UTC), затем пробел, а затем часовой пояс как смещение от UTC (a + или - с четырьмя цифры, первые два - часы, а второй - минуты).
I.e., как если бы временная метка была отформатирована с помощью strftime("%s %z")).
Обратите внимание, что параметр -local не влияет на seconds-since-epochзначение (которое всегда измеряется в UTC), но переключает значение часового пояса.

И новая опция: --date=unix

показывает дату как временную метку эпохи Unix (секунды с 1970 года).
Как и в случае с --raw, это всегда в формате UTC, и поэтому -local не имеет эффекта.