This gives the list of all recent commits but not the ones that are only reachable from the notes hierarchy: $ git log --exclude=refs/notes/\* --all --no-merges --since=18.hours | git shortlog and we are supposed to be able to write the same with shortlog itself, i.e. $ git shortlog --exclude=refs/notes/\* --all --no-merges --since=18.hours but this does not understand the ref exclusion command-line option. A funny and puzzling thing is that this is understood: $ git shortlog --all --no-merges --since=18.hours What is strange is that --all, --no-merges, etc. and the ref exclusion option all are handled in revision.c and only one of them is being rejected. .... Aaaand, it turns out that the answer is in the big comment at the beginning of handle_revision_pseudo_opt(). -- >8 -- Subject: shortlog: allow --exclude=<glob> to be passed e7b432c5 (revision: introduce --exclude=<glob> to tame wildcards, 2013-08-30) taught a new option to the command-line parser of "log" and friends, but did not wire it fully so that it can also be used by "shortlog". Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- revision.c | 1 + 1 file changed, 1 insertion(+) diff --git a/revision.c b/revision.c index 71e2337..3818b46 100644 --- a/revision.c +++ b/revision.c @@ -1633,6 +1633,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg !strcmp(arg, "--reflog") || !strcmp(arg, "--not") || !strcmp(arg, "--no-walk") || !strcmp(arg, "--do-walk") || !strcmp(arg, "--bisect") || starts_with(arg, "--glob=") || + starts_with(arg, "--exclude=") || starts_with(arg, "--branches=") || starts_with(arg, "--tags=") || starts_with(arg, "--remotes=") || starts_with(arg, "--no-walk=")) { -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html