Уже есть несколько полезных правильных ответов (например, git log --since="6am"
), но странно, что в документации отсутствуют специальные даты Git (по крайней мере, поиск в Google "вчера", "полдень" сайта: git-scm.com не возвращает результатов).
Существуют способы узнать, что доступно, например, ответы на Спецификация для синтаксиса дат git особенно полезны. В одном Райан О'Хара указывает , что
it seems to accept all formats that it can output, as described in the documentation for the --date option:
--date=(relative|local|default|iso|rfc|short|raw)
Действует только для дат, отображаемых в удобочитаемом формате, например, при использовании
--pretty
. log.date
Переменная config устанавливает значение по умолчанию для журнала
опция команды --date
.
--date=relative
показывает даты относительно текущего времени, например, "2 часа назад".
--date=local
показывает временные метки в местном часовом поясе пользователя.
--date=iso
(или --date=iso8601
) показывает метки времени в формате ISO 8601.
--date=rfc
(или --date=rfc2822
) показывает временные метки в формате RFC 2822, часто встречающиеся в сообщениях электронной почты.
--date=short
показывает только дату, но не время, в формате YYYY-MM-DD
.
--date=raw
показывает дату во внутреннем необработанном формате git %s %z
format.
--date=default
показывает временные метки в исходном часовом поясе (как коммиттера, так и автора).
Мой любимый ответ - от me_and , который направляет нас к классу git date.c . Сканируйте его, и вы найдете этот код (на момент написания он был в строке 925):
static const struct special {
const char *name;
void (*fn)(struct tm *, struct tm *, int *);
} special[] = {
{ "yesterday", date_yesterday },
{ "noon", date_noon },
{ "midnight", date_midnight },
{ "tea", date_tea },
{ "PM", date_pm },
{ "AM", date_am },
{ "never", date_never },
{ "now", date_now },
{ NULL }
};
Я определенно использую git log --before=tea
, хотя, глядя на функцию date_tea
, я не думаю, что они прочитали Руперт Брук :
static void date_tea(struct tm *tm, struct tm *now, int *num)
{
date_time(tm, now, 17);
}