Really I'm disappointed that people don't build their computers from scratch these days. You don't know what's going on when you have so many components joined together with random blobs of firmware.
Give me a bare Z80, a bunch of RAM, and anybody could understand it. Plus if you're writing your code in assembly you can optimize better than any compiler - they wouldn't know enough to use your opcodes as constants when you need to.
/s
You can put down a sequence of git invocations in a text file or script, stare at them, reason about them, tweak them as appropriate for your use case, copy and paste them to another developer, write about them in a blog post, include them in a README.
It's harder to do this with a sequence of gui actions.
Most developers, pull, push, merge, rebase, and fix merge conflicts.
However, it's quite important to recognize when your basic git skills are not enough anymore. Which often is joining a bigger team/company.
What can't be done from the GUI? The only thing I've had to do from the command line is using git subtrees.
Speaking of that, which git GUI is good, in your opinion? I tend to use Git from the command line, but had tried out a few GUIs for a project earlier, but not enough to decide. GitEye was one, another might have been SourceTree (IIRC it is from Atlassian).