Coloured bash prompt including git status and previous exit code
Solid script, nicely done.

"less lines of code"

__colour_enabled is used only once,
when setting __colourise_prompt, which in turn is also used only once.
It seems an unnecessary indirection.
You could drop this line:


unset __colourise_prompt &amp;&amp; __colour_enabled &amp;&amp; __colourise_prompt=1



And change this condition:


if [[ $__colourise_prompt ]]; then



To this:

if __colour_enabled; then




Some color variables are defined but never used.
But I would keep them anyway,
in case you (or somebody else) want to adjust the colors later
(they are not exactly easy to remember).



To shorten the code, you could rewrite some of the if statements in cmd &amp;&amp; ... || ... form, but I don't recommend that.
In its current form it's nicely readable and good that way.

Undefined variables

When you detect that colors are enabled, you set a bunch of variables, for example Red, BRed, Mag, None. If colors are not enabled, you don't clear these variables, but they may be used anyway later in the script. 

Although it may seem unlikely that these variables are set outside this script, it can happen,
and that will be confusing and possibly annoying.
The clean solution is to make sure to set those variables to blank when colors are not enabled.

Condition without pattern matching

The == operator in [[ is useful for pattern matching.
In this example you don't need pattern matching,
so I suggest to replace it with =, which will do simple literal comparison.


if [[ ${EUID} == 0 ]]; then



Coding style

You mixed two styles of function declaration:


__colour_enabled() {
    # ...
}

__set_bash_prompt()
{
    # ...
}



It would be better to use consistent style (I prefer the first one).