88 votes

Comment faire pour que le journal de Git affiche tous les commits du jour ?

Je veux être capable de voir toutes les modifications que j'ai faites aujourd'hui en utilisant git log . Je suis arrivé avec git log --after="yesterday"
Cependant, cela me semble un peu maladroit, existe-t-il une commande plus simple pour obtenir le même effet ?

110voto

abyx Points 15304

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 assez "matinal" pour vous :)

10 votes

Cela ne semble pas fonctionner sur git 1.5.6.5, pour info. Je sais, ancienne version et tout, mais je me dis que cela pourrait aider quelqu'un. git log --after="yesterday" semble être la plus proche de la réalité, mais elle finit par inclure des choses qui se sont produites hier et d'autres qui se sont produites. après hier.

3 votes

Pour moi : git log --since="yesterday" fonctionne bien. Il est beau avec --pretty="oneline" aussi... (git version 1.7.10)

0 votes

--Puisque et --après sont des synonymes, donc la réponse suggère la même chose que celle de la question. Cela donnera les dernières 24 heures de commits (d'où le problème de @agentbanks217 de voir les commits d'hier). J'ai donné une réponse différente ci-dessous.

74voto

Simon Points 8717

Le mieux est peut-être d'utiliser

git log --since="6am"

Vous pouvez ajuster le temps à votre convenance ;)

1 votes

Ajoutez aussi --all pour voir le journal de toutes les branches durant la période

0 votes

J'ai voté pour celui-ci plutôt que pour l'autre car il semble être plusieurs jours plus tôt.

29voto

yoyo Points 802

Pour obtenir les commits de tous d'aujourd'hui ...

git log --since=midnight

0 votes

Cette commande affichera les commits d'aujourd'hui, de minuit 12AM à 11:59PM, n'est-ce pas ?

28voto

Dariusz Points 2845

Vous pouvez créer des alias pour raccourcir cette commande.

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

et ensuite l'exécuter :

git today

9voto

dumbledad Points 1207

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);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X