The terminal is the best and only git client you need and it will always be free. You are doing yourself a disservice as a developer by not learning how to use your terminal
I'm not sure about that in the case of git. I used the terminal UI exclusively for a long time but it's so bizarrely designed that I've been interested in using a GUI for a while. There are a lot of reasons a dev should learn to use a terminal but making git more pleasant to use isn't necessarily one of them.
GUIs aren't super flexible but they are good at taking a common flow users go through and making it stupid simple to exercise. A lot of the usage of git should be stupid simple, with only infrequent need for complex interaction. Obviously there are some people out there for which a GUI will never be sufficient for their needs, but I'd argue it isn't the common case.
I'm typically a heavy terminal user. Git is my exception. a) the UI of git cli is just so terrible that I'd rather fill my brain with more important things, and b) for viewing what's changed, `git diff` just doesn't cut it relative to a GUI.
Sourcetree is my go to git client, but if I couldn't use sourcetree I'd be OK with pretty much any git GUI. But git CLI is reserved for particularly tricky things that GUIs just can't handle well. (And I need to look up the specific flags or commands every single time.)