However, Tower help you both become more productive and make fewer mistakes. No one likes to inspect a complex project history on the command line. Getting a visual representation of a conflict helps you resolve it more confidently. Automatically having local changes stashed away prevents problems... There are indeed many scenarios where a GUI is plain helpful - for beginners and pros alike.
You can launch e.g. kdiff3 when necessary to resolve conflicts visually without using a GUI git clint.
> lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
Typing "e" will let you edit the chunk. Then you can get as fine grained as you like.
Personally, I use Emacs and commit-patch [1].