> This is largely because of GitHub’s popularity and in spite of git’s poor UX.
That's a big deal. Git's CLI is really powerful, but it has pretty poor GUIs. I use Sourcetree[0] a lot. It is sufficient, but also pretty damn buggy, and doesn't really give me access to some of the more powerful CLI features, so I sometimes need to go into the CLI.
I have tried other Git GUIs (I am deliberately not naming names), and have found them to be fairly pretty, but also worthless. A pretty UI is great, but it also needs to have some meat on its bones.
lazygit (sadly on GitHub: https://github.com/jesseduffield/lazygit) offers a wonderful TUI for Git that has helped me on a number of occasions visualize Git when needed. The bonus of the TUI is that it works well with upterm/tmate for pair programming.