Until a couple of weeks ago, I didn’t understand what it was that makes GitHub so awesome. It isn’t the pretty interface to the Git version control system or the fact that people can post code and other things for the world to see and use. GitHub is awesome because it makes it absolutely trivial to collaborate and help out other programmers.
It all started with a tweet:
The only way I learn is by doing so I converted our Flickr widget into a plugin. Pretty sure it can be improved –> https://t.co/WPMgREbgwu
— Erik Ford (@notdivisible) September 5, 2013
I thought it was pretty cool that Erik was sharing this with the world so I took a look at the plugin. I opened the plugin file that had just been committed and started perusing the code. I immediately saw this line:
wp_register_style( 'wap8-flickr-me', plugins_url( 'flickr-me/css/flickr-me.css' ), '', WAP8_FLICKR_ME_VERSION, 'screen' );
I noticed that plugins_url
was missing the second parameter needed for it to function correctly. I wanted to help Erik out by providing a fix, but I didn’t have a bunch of time that morning. In the past, providing help would have meant checking out the code, making my change, generating a patch, and sending that to Erik in some way. Alternatively, I could have provided instructions for a fix like I did for the WP SMTP config plugin.
Because the code was hosted on GitHub, I didn’t have to do either of those things. The interface allowed me to create a fork, edit the file, and send a pull request – all through the web interface. In case I’m not illustrating how easy it is to do this, here’s some screenshots of the process:
Finally, you get to send a tweet letting the person know that you’ve sent them a pull request:
@notdivisible Pull request: https://t.co/fhQjn9tIxH
— Nick Ohrn (@nickohrn) September 5, 2013
And that’s why GitHub is awesome. Not just because you can find solutions for problems you’re having, but because it makes it as easy as possible to collaborate and help others.
I just recently started using GitHub as a place to park code that I am working on and am still learning the ins and outs of Git (I am a SVN guy). But, as you mentioned in your post, I, too, love the fact that other developers can easily collaborate with anything I make public. This not only helps me improve as a developer, but also helps strengthen the community.
I’m in the same boat. I previously thought it was really just a place for dedicated open source projects and people trying to show off. I hadn’t realized the other part existed / was useful.