J'ai déjà examiné les documents pertinents de git-scm.com et gitref.org , mais je n'arrive pas à comprendre cela.
Disons que je veux obtenir tous les commits pour le mardi 12 novembre 2013. En utilisant un repo existant comme exemple, je sais pertinemment que j'ai des commits ce jour-là, ainsi que des commits la veille et le lendemain.
Avec 2013-11-11
et2013-11-12
Tout ce qui suit me donne des engagements pour les 11 et 12 novembre:
git log --after="2013-11-11" --until="2013-11-12"
git log --since="2013-11-11" --until="2013-11-12"
git log --after="2013-11-11" --before="2013-11-12"
git log --since="2013-11-11" --before="2013-11-12"
Avec 2013-11-12
seulement
Tout ce qui suit ne me donne aucun engagement:
git log --since="2013-11-12" --until="2013-11-12"
git log --since="2013-11-12" --before="2013-11-12"
git log --after="2013-11-12" --until="2013-11-12"
git log --after="2013-11-12" --before="2013-11-12"
Avec 2013-11-12
et2013-11-13
Comme prévu (à partir des résultats de 2013-11-11
et 2013-11-12
ci - dessus), tous les éléments suivants me donnent les résultats des 12 et 13 novembre:
git log --since="2013-11-12" --before="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
git log --since="2013-11-12" --until="2013-11-13"
git log --after="2013-11-12" --before="2013-11-13"
...et ainsi de suite. Je me sens comme je l' ai essayé toutes les combinaisons possibles since
, after
, before
et until
mais ne peut toujours pas trouver la réponse, et je ne comprends si ces options sont inclusifs ou exclusifs, car ils semblent être inclus si les deux dates sont différentes, mais exclusifs s'ils sont le même jour. Ai-je manqué quelque chose / qu'est-ce que je fais de mal?!
Réponses:
Merci John Bartholomew!
La réponse est de spécifier l'heure, par exemple
git log --after="2013-11-12 00:00" --before="2013-11-12 23:59"
la source
git log --after="2013-11-12 00:00" --before="2013-11-13 00:00"
mieux. Je pense quegitk --since="2013-11-12 00:00" --until="2013-11-13 00:00" &
cela fonctionnerait également si vous avez installé gitk.git log --after="2017-07-25" --before="2017-07-26"
donne des résultats valables pour moi.Je vérifie généralement mon journal git et vois ce que je travaillais un jour spécifique et je mets à jour ma feuille de temps en fonction de cela, mais c'est une douleur dans le cul de taper la date complète au format ISO alors je le fais simplement comme ça
et j'ajoute
--author
pour n'imprimer que mes commitsCela imprime les commits qui ont eu lieu le 9 juin dernier (donc pour 2016 dans ce cas et non pour 2015 ou 2014 et ainsi de suite).
Les
--since/--after
et les--until/--before
paramètres peuvent également prendre des choses comme3 days ago
,yesterday
, etc.la source
since
etuntil
ne sont pas correctes, vous n'obtiendrez aucune sortie, c'est certain. Utilisez d'git log
abord et essayez de choisir une valeursince
et enuntil
fonction de ce que vous voyez. Aucune succursale ou quoi que ce soit de spécial requis. Je ne sais pas depuis quelle version de Git cette fonctionnalité est disponible. Assurez-vous également d'avoir une version récente.git log --after="may 2" --before="may 3"
Rien de mal avec la réponse acceptée (que j'ai votée pour), mais ... nous sommes ici pour la science!
La sortie ci-dessous peut être développée / personnalisée avec des
pretty=format:<string>
espaces réservés :Pas à 100% immunisé contre les erreurs car la même chaîne aurait pu être saisie par un utilisateur. Mais acceptable selon les espaces réservés utilisés. L'extrait ci-dessus n'échouerait pas, par exemple.
On pourrait aussi bien analyser tout l'ensemble
git log
àJSON
et à consommer / manipuler ses données à un contenu de coeur. Vérifiez https://github.com/dreamyguy/gitlogg et ne regardez jamais en arrière!Avertissement: c'est l'un de mes projets.
la source
J'ai créé un alias git dans ce but précis:
Usage:
la source
git commitsAtDate yesterday
-à- dire2 days ago
, etc.Ce script affiche la plage de dates disponible des validations pour le dépôt actuel, puis vous demande la date à partir de laquelle vous souhaitez voir les validations. Il affiche un SHA court et le SHA complet, l'auteur, l'horodatage de la validation et les commentaires entre guillemets simples.
Le script continue de demander des dates jusqu'à ce que vous appuyiez sur Entrée ou Ctrl-D.
Utilisateurs Mac: nécessite la date GNU.
J'ai appelé le script
commitsOnDates
, et le voici en action. La première date que j'entre n'a pas de validation, donc la réponse est juste une ligne vide:la source