Even without built in options, writing a for-loop over the result of git log or rev-list is more or less two lines of scripting. Same with a walk over rev-parse HEAD^.
Then you also have git bisect but that's more for finding when some metric started to show anomalies.