This shows a nice fuzzy finder for browsing git commits. It uses git log to show the commit history and fzf to filter the commits.

Bash

function cmb() {
  git log --graph --color=always \
      --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" |
  fzf --ansi --no-sort --reverse --tiebreak=index --bind=ctrl-s:toggle-sort \
      --bind "ctrl-m:execute:
                (grep -o '[a-f0-9]\{7\}' | head -1 |
                xargs -I % sh -c 'git show -w --color=always % | less -R') << 'FZF-EOF'
                {}
FZF-EOF"
}

PowerShell

function cmb {
    $selectedCommit = $(
        git log --graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" $args |
        fzf --ansi --no-sort --reverse --tiebreak=index --bind=ctrl-s:toggle-sort |
        ForEach-Object { $_ -match '^\*\s+([a-f0-9]+)' | Out-Null; $matches[1] }
    )
 
    if ($selectedCommit) {
        git show -w --color=always $selectedCommit | less -R
        cmb
    }
}