Il existe déjà plusieurs réponses correctes utiles (par ex. git log --since="6am"
) mais il est étrange que les dates spéciales de Git soient absentes de la documentation (au moins en googlant "hier" "midi" site:git-scm.com ne renvoie aucun résultat).
Il existe des moyens de savoir ce qui est disponible, par exemple les réponses aux questions suivantes Spécification de la syntaxe des dates git sont particulièrement utiles. Dans un Ryan O'Hara souligne que
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)
Ne prend effet que pour les dates affichées dans un format lisible par l'homme, comme lors de l'utilisation de la fonction --pretty
. log.date
La variable de configuration définit une valeur par défaut pour le journal de la commande --date
option.
--date=relative
affiche les dates relatives à l'heure actuelle, par exemple "il y a 2 heures".
--date=local
affiche les horodatages dans le fuseau horaire local de l'utilisateur.
--date=iso
(ou --date=iso8601
) affiche les horodatages au format ISO 8601.
--date=rfc
(ou --date=rfc2822
) affiche les horodatages au format RFC 2822, que l'on trouve souvent dans les messages électroniques.
--date=short
affiche uniquement la date mais pas l'heure, en YYYY-MM-DD
format.
--date=raw
affiche la date dans le format git brut interne %s %z
format.
--date=default
montre les horodatages dans le fuseau horaire d'origine (soit celui de l'auteur, soit celui du committer).
Ma réponse préférée est la suivante de me_and qui nous dirige vers la classe git date.c . Parcourez-le et vous trouverez ce code (au moment de l'écriture, il se trouve à la ligne 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 }
};
Je vais définitivement utiliser git log --before=tea
bien qu'en regardant le date_tea
fonction je ne pense pas qu'ils aient lu Rupert Brooke :
static void date_tea(struct tm *tm, struct tm *now, int *num)
{
date_time(tm, now, 17);
}