This is a topic that I’ve talked about with a lot of people in the past couple years. I’ve used a GUI myself for a while, but always came back to the command line application. It is simply faster, it’s scriptable and supports all the goodies in Git, while a GUI only exposes a subset of its features.
There is definitely a bit of a learning curve, but it’s not as steep as it might seem. Once you get the hang of the three basic commands (status, add and commit), you will notice that you can keep track of your own history already.
Some people love Git, others hate it. I’m part of the first group of people. I love the way decentralized version control systems work. Git was the first I ran into, only using SVN by that time. At first it was hard to switch from my habits in SVN, to a more flexible version control system like Git. But once you make the switch, start using everything that makes Git the great system that I think it is, you will dislike every time you have to use SVN again.
Since Git works with a local repository and remote repositories, you can commit changes to your local repository without pushing these commits to the remote repository. That makes Git fast and more flexible. You can even have complete branches on your local environment only, without publishing them. That way you can work on large parts of code without having to be connected to the central remote repository all the time.