Github.app

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.

Workflow

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:

| ruby.rb
| public/
| --- html.html
| --- javascript.js
| build/
| --- binary.bin

and are ready to commit some code. Let’s see how Github.app simplifies things.

Easy ignores

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 javascript.js and 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 javascript.js and html.html, then hit commit. But wait! Panicking, you realize you deselected javascript.js instead of 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:

    vim .gitignore # add “*.bin” to end of file
    git add ruby.rb
    git add public/html.html
    git commit -m “Add html doctype and javascript ‘use strict’”
    git rm ruby.rb
    git add public/javascript.js
    git commit --amend
Method Work Required
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.

Conclusion

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.

 
81
Kudos
 
81
Kudos