web-dev-qa-db-fra.com

Comment faire pour que le journal Git affiche tous les commits d'aujourd'hui?

Je veux pouvoir voir tous les commits que j'ai faits aujourd'hui en utilisant git log. Je suis venu avec git log --after="yesterday"
Cependant, cela me semble un peu gênant, existe-t-il une commande plus simple pour obtenir le même effet?

75
agentbanks217

Edit: Puisque c'est la réponse acceptée, je ne peux pas la supprimer, donc je poste ici @ la réponse de Simon:

git log --since="6am"

Et bien sûr, vous pouvez ajuster l'heure à ce qui est suffisamment "matin" pour vous :)

84
abyx

Le mieux est peut-être d'utiliser

git log --since="6am"

Vous pouvez régler l'heure à votre convenance;)

61
Simon

Vous pouvez créer un alias pour raccourcir cette commande

git config --global alias.today 'log --since=7am'

puis exécutez:

git today
18
Dariusz

Pour obtenir des validations de tous d'aujourd'hui ...

git log --since=midnight
16
yoyo

Btw, cela fonctionne aussi:
git log --since=am

4
suzanshakya

Il existe déjà plusieurs bonnes réponses utiles (par exemple git log --since="6am") Mais il est étrange que les dates spéciales de Git soient manquantes dans la documentation (au moins googler site "hier" "midi": git-scm.com ne renvoie aucun résultat).

Il existe des moyens de découvrir ce qui est disponible, par exemple les réponses à 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 --pretty. La variable de configuration log.date Définit une valeur par défaut pour l'option --date De la commande de journal.

--date=relative Affiche les dates par rapport à 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 des horodatages au format ISO 8601.

--date=rfc (Ou --date=rfc2822) Affiche des horodatages au format RFC 2822, souvent présents dans les messages électroniques.

--date=short Affiche uniquement la date mais pas l'heure, au format YYYY-MM-DD.

--date=raw Affiche la date au format interne brut git %s %z.

--date=default Affiche les horodatages dans le fuseau horaire d'origine (de l'auteur ou de l'auteur).

Ma réponse préférée est de me_and qui nous dirige vers la classe git date.c . Scannez cela et vous trouverez ce code (au moment de la rédaction, il est en 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 }
};

J'utilise certainement git log --before=tea, Bien qu'en regardant la fonction date_tea, 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);
}
3
dumbledad