#!/bin/bash set -eo pipefail UPSTREAM=$1 HEAD=$2 HASHES=$(git cherry "$UPSTREAM" "$HEAD" | grep -F '+' | tr -d '+ ' | cut -c 1-7) HASH_REGEX="/$(echo "$HASHES" | paste -sd '|' -)/" AWK_PROG_TEMPLATE="$HASH_REGEX { where = match(\$0, /[a-f0-9]{7,}/) substring = substr(\$0, where, 7) sub(substring, \"\033[1;7m&\") } { print } " git log --all --decorate --oneline --graph --color=always | awk "$AWK_PROG_TEMPLATE" | less -R