One of the main problems with using a GUI versus the command line is that you are unable to have the same control over your process, in most cases. For instance, the GitHub application is great in terms of usability for a lot of git workflows, but could still be cumbersome for advanced git processes.
As an example, here are some things that I have not figured out how to do using the GitHub application (another thing to note is that each GUI also has a learning curve).
- Rebasing commits
- Push/Pull/Fetch individually (in GitHub they are grouped into a single "sync" command which might cause problems some times)
- Amending commits
Finally, CLIs allow for users to use thisthese tools when scripting.