You can achieve something close (on small repos, more on that later) with:
$ git log --graph --color \
--format='%C(auto)changeset: %h:%H%nuser: %an%ndate: %ad%nsummary:
%s%n' \
| git name-rev --refs=$(git rev-parse --abbrev-ref HEAD) --name-only --stdin
* changeset: 5fa0f52:master
| user: Junio C Hamano
| date: Fri Aug 16 10:28:23 2019 -0700
| summary: Git 2.23
|
* changeset: 8e0fa0e:master~1
|\ user: Junio C Hamano
| | date: Fri Aug 16 10:22:51 2019 -0700
| | summary: Merge tag 'l10n-2.23.0-rnd2' of
git://github.com/git-l10n/git-po
| |
| * changeset: a6cd2cc:master~1^2
| | user: Jiang Xin
| | date: Tue Jul 30 10:02:22 2019 +0800
| | summary: l10n: zh_CN: for git v2.23.0 l10n round 1~2
And in this case, since we are using HEAD to describe the commits by
using --refs=$(git rev-parse --abbrev-ref HEAD), you can refer to
a6cd2cc either as master~1^2 or HEAD~1^2.
Now, git-name-rev has some memory/performance problems in repos with a
high number of references. Alban Gruin was working on this issue[1], but
I don't know what's the status of it.
[1]:https://github.com/agrn/git/tree/ag/fix-name-rev-leak