How print last commit info for every file in a git repository
I'm dubious about how useful this will be, since you can always get the information from a local repository, or through gitweb, but here you are:
git ls-files | while read file; do git log -n 1 --pretty="Filename: $file, commit: %h, date: %ad" -- $file; done
The %h
gives you an abbreviated hash; if you want the full one, use %H
. You can also fiddle with the format of the date using --date=local|iso|rfc|short
(see the git-log manpage).
I had a chat about this on #git
with a few guys, and one of them (thanks Mikachu) found this Perl script which had the right algorithm but some serious implementation flaws.
So I fixed up the issues with that script, tidied it up a lot, and here is the result (download from here). Note that it currently requires Term::ANSIColor
to run. here you can see a screenshot of it in action:
(source: adamspiers.org)
Hope that helps!