Es gibt bereits einige nützliche richtige Antworten (z. B. git log --since="6am"
), aber es ist seltsam, dass die speziellen Daten von Git in der Dokumentation fehlen (zumindest die Website "gestern" "mittags" googeln : git-scm.com gibt keine Ergebnisse zurück).
Es gibt verschiedene Möglichkeiten, um herauszufinden, was verfügbar ist. Beispielsweise sind die Antworten auf die Spezifikation für die Syntax von Git-Daten besonders nützlich. In einem Punkt Ryan O'Hara aus , dass
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)
Wirkt nur für Daten, die in einem für Menschen lesbaren Format angezeigt werden, z. B. bei Verwendung
--pretty
. log.date
Die Konfigurationsvariable legt einen Standardwert für die --date
Option des Protokollbefehls fest .
--date=relative
zeigt Daten relativ zur aktuellen Zeit an, z. B. "vor 2 Stunden".
--date=local
Zeigt Zeitstempel in der lokalen Zeitzone des Benutzers an.
--date=iso
(oder --date=iso8601
) zeigt Zeitstempel im ISO 8601-Format.
--date=rfc
(oder --date=rfc2822
) zeigt Zeitstempel im RFC 2822-Format an, die häufig in E-Mail-Nachrichten enthalten sind.
--date=short
zeigt nur Datum, aber keine Uhrzeit im YYYY-MM-DD
Format an.
--date=raw
Zeigt das Datum im internen Raw-Git- %s %z
Format an.
--date=default
Zeigt Zeitstempel in der ursprünglichen Zeitzone an (entweder vom Committer oder vom Autor).
Meine Lieblingsantwort dort ist von mir_und wer leitet uns zur git date.c Klasse . Scannen Sie das herunter und Sie finden diesen Code (zum Zeitpunkt des Schreibens steht er in Zeile 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 }
};
Ich benutze definitiv git log --before=tea
, obwohl ich mir die date_tea
Funktion anschaue, glaube ich nicht, dass sie Rupert Brooke gelesen haben :
static void date_tea(struct tm *tm, struct tm *now, int *num)
{
date_time(tm, now, 17);
}
git log --after="yesterday"
scheint der Korrektur am nächsten zu kommen, aber es schließt Dinge ein, die gestern passiert sind, zusammen mit Dingen, die nach gestern passiert sind.