The CLI and probably other more advanced guis are going to give you the option to:
- bisect: very useful for debugging. Like definitely check it out.
- rebase: excellent for clean commits. I use it all the time to squash commits together
- diff arbitrary branches and commits. Super useful for debugging.
- cherry pick: useful to apply a commit from a different branch or remote
- Apply: I use it to pass around patches for things for testing / debugging.
That's just off the top of my head and also stuff that you can learn on the job. Good to know it exists though. I still use a "gui" (fugitive for vim) for simple tasks, like staging files 🙂