If you care about creating good commits and good commit messages, you don't use a GUI. First, I edit the hunks I stage. I don't mean selecting specific lines, I mean selecting only parts of specific lines and rejecting other parts. I have yet to see a git GUI that allows this — at best you can find GUI clients that allow you to stage lines, which is mostly pointless if, like me, you modify a line and only want to stage half of the changes you did to that line. Second, I follow Tim Pope's guidelines for commit messages, and that means strict character counts for the first line of the message and all the lines that follow. GUI clients do not make it easy to track these things. The latter case is far more important to me because I care quite a bit about whether my commit messages are consistent and work regardless of whether you're using a terminal or not. If you're using a GUI, chances are you're not doing much to write good commit messages. Chances are your summary line is way longer than it should be. Hell, you may not have a summary line because you don't realize the first line of a git commit message is slightly special. GitHub certainly does not encourage this behavior and in fact will never tell you about it. The only way you'll know about it is if you actually read about commit messages, but you probably didn't do that either because you're using a GUI. Why do it when there's a text box that just lets you write in it and ignore the fact that `git log` will not actually wrap your commit messages? So, if you place any value in other people working with your repositories, you're probably doing them a disservice by not putting enough care into your work. I can pretty much confirm this is true of at least Joe's commits on GitHub (having looked at them). Not everyone works with your pretty/fluid GUI clients, so you're screwing the folks who don't (and when it comes to git, that number is actually pretty high). This post is from -- http://socoder.net/index.php?topic=2887