Isso está acontecendo porque seu prompt está sendo configurado para o valor de parse_git_branch
quando o prompt está configurado, você precisa dele para executar a função toda vez que for executado.
Você precisa colocar um \
antes do $(parse_git_branch)
para que o dólar fique oculto quando o prompt for definido, para que não seja executado. Quando o prompt for executado, o dólar ficará visível e o comando entre parênteses será executado, mostrando o valor correto para a pasta em que você está.
export PS1="$PS1\e[30;48;5;82m\$(parse_git_branch)\e[0m \[3[00m\]"
Isso é explicado nos documentos bash do segundo parágrafo desta página link
Outro truque útil aqui é executar /bin/bash -x
e tentar, isso mostra muito mais do que está acontecendo.