(répondre à ma propre question)
git log supporte les dates pour le filtrage avant ou après des temps donnés. Exemple:
git log --after='july 17 2010' --before='july 31 2010'
Voici un script shell qui le rend un peu plus facile à la liste des gammes de commits, mais il utilise également un format terser que par défaut du journal git:
#!/bin/sh
# git-changes
FORMAT='%cd%x09%h%n%x09%s%n'
CMD="git log --format=format:$FORMAT"
case $# in
0)
$CMD ;;
1)
$CMD "--after=`date -d "$1"`" ;;
2)
$CMD "--after=`date -d "$1"`" --before="`date -d "$2"`";;
esac
Note: J'enroulai la date arguments avec la commande date, car git traite 'July 17'
comme étant à quelques heures de 'July 17 2010'
pour une raison quelconque.
Utilisation:
git-changes # Same as git log, but more terse
git-changes 'yesterday' # List all commits from 24 hours ago to now
git-changes 'jul 17' 'aug 1' # List all commits after July 17 at midnight
# and before August 1 at midnight.
Exemple de sortie de git-changes 'jul 17' 'aug 1'
:
Sat Jul 31 23:43:47 2010 -0400 86a6727
* Moved libcurl into project directory as static lib.
Sat Jul 31 20:04:24 2010 -0400 3a4eb10
* Added configuration file support.
Sat Jul 31 17:44:53 2010 -0400 aa2046b
* Fixed truncation bug in bit parser.
Sat Jul 17 00:10:57 2010 -0400 99e8124
* Added support for more bits.
Maintenant, pour voir tous les changements introduits par commettre 99e8124, le type git show 99e8124
. Pour voir tous les changements depuis la révision 99e8124 (sans inclure cette validation), tapez git diff 99e8124
.