From: Konstantin Khomoutov Date: Wed, 05 Dec 2018 14:54:20 GMT Subject: Re: Any way to make git-log to enumerate commits? Message-ID: <20181205145419.vbbaghzzrnceez45@tigra> In-Reply-To: <5e5c6d1c-6b3e-c94a-17be-a2af518c1607@yandex.ru> On Wed, Dec 05, 2018 at 05:22:14PM +0300, Konstantin Kharlamov wrote: > It would be great if git-log has a formatting option to insert an > index of the current commit since HEAD. > > It would allow after quitting the git-log to immediately fire up "git > rebase -i HEAD~index" instead of "git rebase -i > go-copy-paste-this-long-number-id". This may have little sense in a general case as the history maintained by Git is a graph, not a single line. Hence your prospective approach would only work for cases like `git log` called with the "--first-parent" command-line option. Still, for a simple approach you may code it right away yourself. Say, let's create an alias: $ git config alias.foo '!git log "$@" --pretty=oneline --source | { n=0; while read sha ref rest; do printf "%s\t%s~%s\t%s\n" "$sha" "$ref" $n "$rest" n=$((n+1)) done }' Now calling `git foo --abbrev=commit` would output something like 9be8e297d HEAD~7 Frobincated fizzle where "7" is what you're looking for. A more roubst solution may need to use the `git rev-list` command.