I've run a somewhat odd little script to generate my command prompt for years now, sets some colors, adds some indicators of what kind of shell I'm in (sudo or tmux/screen or ssh or.. ).
Given I now have to work with git and submodules, I've revised that to include information provided about git generated by this script: https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh
The difference is worth it, in understanding at a glance what is going on without typing
git status or variant every two seconds. ;)
I've also been using some very useful aliases to make working with submodules sane, as documented here: Game On! Advanced Adventures / Git Submodules