Я не использую git, но держу пари, что часть приглашения $(__git_ps1)
оценивается, когда PS1 устанавливается впервые (и ничего не возвращает). Вам нужно использовать одинарные кавычки, т.е. PS1='\e....\r\n'
, тогда подстановка cmd будет выполняться каждый раз, когда отображается подсказка.
Двойные кавычки позволяют расширять env-vars и другие функции оболочки, начинающиеся с '$'. Одиночные кавычки предотвращают расширения. Это цель двух типов цитирования.
См. Tldp.org/LDP/abs/html/quoting.html
.
(я удалил свои комментарии)
Надеюсь, это поможет.