It has some useful features that I find easier to use in a gui than using command line.
For example, being able to see a summary of diffs of all staged and unstaged files, and being able to select particular lines of the diffs and stage/unstage/undo them. Or being able to see commits and diffs from other peoples' branches before I pull them.
Honestly, a gui is pretty useful for git, especially when you're doing operations that you want to apply to many specific files in different folders.
> push, pull, checkout, add, commit. I can go days just using those five commands.
You're missing out on a few git features then.
I agree some of the buttons are useless, like adding or removing files. The main window has a list of staged and unstaged files and I just drag and drop files between the two window panes. I've never had to use those buttons before.