Magit's user interface has a status screen, from which you can perform the git commands.
In short, I think it's got the best of both a GUI or a CLI interface:
If you're unfamiliar with which magit commands you want to run, its interface is highly discoverable: it can list all the commands you can run, and for each of these it lists the most common options. (Some more advanced options are hidden but can be configured to show).
Once you're familiar with the commands you want to run, they can be run by typing the sequences of keys directly. (e.g. `c c` to commit, `c w` to reword, `r -i e` to start an interactive rebase onto another branch, etc.). -- This is the speed of having two letter aliases on the CLI, but without having to set them up.
This combined with the other dynamics that you get from having its interface in a text editor:
With a CLI, I'd have to type out a commit's hash (3 or 4 letters) to operate on it; with magit, I can operate with a commit by having my cursor on it.
When choosing a branch, emacs' narrowing tools are better integrated than what you get out of the box with CLI.
Because it's part of the Emacs editor, you can write custom convenience functions which build on top of the functionality if you want.