I recently started using Github.app (for mac and windows) and have been surprised at how it’s slowly but noticeably changing my committing habits, making me into (what I think to be) a better developer. The app is a free tool which abstracts away the details of git, allowing you to focus on your pull-branch-commit-merge-push gitflow instead. Here are some of the ways that it’s made me (and hopefully soon, you) a better and more productive developer.
The best way to see Github.app’s advantages is through an example. After an hour of working on a new project, you have the following work tree:
and are ready to commit some code. Let’s see how Github.app simplifies things.
Staring cunningly at your screen, you first realize that you’re not ignoring binary.bin, and, being a responsible developer, want to keep builds out of git. Taking mouse in hand, you right click on binary.bin and select “ignore all files like this.” With one fell swoop, all .bin files are ignored.
Specific commits, commit editing
Next, you decide you only want commit
html.html, as you still have some work to be done on
ruby.rb. All you have to do is unselect
ruby.rb and select
ruby.rb and forgot a commit message!
Never fear - you can edit your most recent commit by hitting the “edit” button next to it. You correctly add a commit message, select the correct files, then commit again, your work finished.
Less typing = less distraction
To do all this in the command line, it would take a bit more work:
|Total keystrokes, manual method||139 keystrokes + 45 for message|
|Total mouse clicks / keystrokes, Github.app||9 clicks + 45 keystrokes for message|
In other words, Github.app reduces 125 keystrokes to 9 clicks!
Better Commit Descriptions
In the above CLI example, we used git commit -m. The -m flag curtails developers into the mindset that commit messages should fit on one line in all cases, when in reality, this is almost never the case. I’ve found that, by having a separate field for commit title and commit description, the app increases the probability that I’ll write a full commit description.
Github.app has caused me to write more descriptive commit messages, has simplified my workflow, and has given me more easy control over my git repos. I believe it’s a tool more developers should take advantage of.