Free - GPL v2
Ranked in these QuestionsQuestion Ranking
Pro Fast and straightforward
There's no additional layer of abstraction.
Pro Gives a better understanding of how git functions
By using the git from the command line, it's possible to learn how it functions and how to get the desired result.
Pro The most powerful way to use git
Using CLI gives access to every single git function available.
Pro Available in Homebrew
brew install git
Pro Even a visual representation of various branches and how they're merged is possible
To visualize history:
git log --graph
Pro Best community support
Since most devs invoke git via CLI there's a higher chance of getting an answer to a CLI based git problem than a GUI-based.
You can customize it and/or integrate it into automated workflows. It has support for plugins, additional subcommands, and event hooks to perform automated tasks such as updating a bug database or kicking off tests.
Additionally, because it is a simple command line program, it is easy to create shell aliases, write scripts that invoke it, or integrate it into a text editor.
Pro It's the same across all the platforms
Pro Gives you full control over what is happening
Any GUI would just use command-line in the background, so by using command-line you are in control.
Con Recalling is more difficult than recognizing
Although there's autocompletion for commands, it still requires recalling at least the beginning of a command while all that's required using a GUI is recognizing the desired outcome.
Con Difficult to overview complex project histories
Con Steeper barrier to entry as compared to a GUI solution
Since you have to learn all the different commands and you don't have the visual help that a GUI app gives you, it has a rather steep learning curve.