Histórico do Shell baseado em Git-repo

Normalmente, tenho muitos projetos nos quais estou trabalhando e cada um deles está em seu próprio repositório Git. Olhar para o histórico do shell de um projeto é uma maneira de obter um lembrete rápido do que eu estava fazendo pela última vez. Eu queria uma maneira de isolar o histórico em um determinado repositório Git. Em outras palavras, se eu executar um comando em qualquer diretório em um repositório Git, quero que esse comando pertença a um arquivo de histórico desse repositório Git.

Este script para um histórico mais geral baseado em diretório pode ser modificado da seguinte maneira:

### Git-repo-directory-based history
function custom_cd()
{
builtin cd
"$@" # do actual cd

# If this directory is in a Git repo, use the root directory for history file.
HISTORY_PATH
=$(git rev-parse --show-toplevel 2> /dev/null) && export HISTFILE=$HISTORY_PATH/.bash_history || export HISTFILE="$HOME/.bash_history"
}
alias cd="custom_cd"
export HISTFILE="$HOME/.bash_history"

export HISTTIMEFORMAT="%h/%d - %H:%M:%S "
export HISTCONTROL=ignoredups:erasedups
export HISTSIZE=1000000
export HISTFILESIZE=1000000
shopt
-s histappend ## append, no clearouts
shopt
-s histverify ## edit a recalled history line before executing
shopt
-s histreedit ## reedit a history substitution line if it failed

## Save the history after each command finishes
## (and keep any existing PROMPT_COMMAND settings)
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"