For learning what 'rebase', 'merge', 'sqush', 'git fetch', 'git pull' does it is nice to have a GUI. Command line on the other hand is usefull to restore lost commits with 'git log' and 'git reset' and I find it quite advanced topic. I think all basic commands are all in GUIS so those that I listed in first line.