On , I learnt ...

That git for-each-ref support conditional logic in its format

Git’s for-each-ref command allows you to iterate over refs and print them according to the --format option.

The format options are different to those for git log. In particular, they allow conditional logic using %(if)%(then)%(else)%(end) syntax.

Here’s some example usage where we print your local branches in different colours depending on whether they have an upstream tracking branch.

git branch --format='%(if)%(upstream)%(then)%(else)%(color:dim)%(end)%(refname:short)%(color:reset)'

Hat-tip to Sam Searles-Bryant for this tip.