If you don’t know what GitHub is, it’s a web-based open source repository for collaboration on software development. It uses the Git revision control system to track a project’s revision history.
This tutorial used some very basic functions of Github – forking (copying) and cloning a project to your local server, editing the project, committing the project back to your remote GitHub access, and then committing it to the larger project.
You do have to have a level of familiarity with programming, and comfort with command lines in a terminal window. If you’re a programming novice, I would not recommend this.
- Installing Git – this took the longest, if you can believe it. This is the Curse of the Mac – the recommended product due to ease of install, xCode, is a Big File (1.65 GB).
- Creating a GitHub Account
- Forking and Cloning the Repository You Will Be Working On – In short, this is making a local remote copy of the repository on your account, and then cloning that copy on to your hard drive. I do have some comfort with terminal applications, but I still got stuck here due to my limited experience with terminal commands, particularly with navigating the project folders on my hard drive. With some persistence, I got things to work. (I also discovered later there are GitHub GUI interfaces, like this one for the Mac, which look great but I feel like are the easy way out for the novice. Has anyone used them?)
- Editing the Repository – in this case, adding your name and a link to your GitHub account to a list of people.
- Committing Your Changes Back to the Remote Github Server – taking your locally saved changes back up to Github
- Sending a Pull Request – this is the notification to the project managers that your changes are complete and ready for review and (hopeful) inclusion.
I was so excited when I saw my changes on Github, and when I sent the pull request, I had to take screenshots (you’re going to want to click on them to make them larger).
This is the result after the commit request that pushes the changes back to Github. I was in glee at what a few command lines would do, especially having little experience in writing terminal commands.
The request to have my changes committed to the main project. It’s out of my hands now….
Whee! I’ve been approved! (Yes, I saved the e-mail. And yes, that is inbox zero on your left.)
I wish I had Git and Github in one of my previous jobs at a law firm, where I was responsible for our website. I was the final step in reviewing changes put on the site, like when an attorney adds a publication or a new bar admission. The process was very analog – the attorney had to submit their changes on a website form (either by themselves or through me), those changes went through administration, then to IT (who implemented them), then to me for final review. If I found something wrong, it went back to IT – and sometimes languished there when IT had other, higher concerns. Attorneys would get frustrated when their request to have their admission to New York state not show up on their site, and there was nothing I could do about it (except come begging to IT baked goods in hand).
With Git and Github, I could track the project on the site, thus receiving notifications of changes, i.e. when IT made a change to the site. I could download, review the HTML files and then make whatever changes I needed to make – fixing spelling, closing tags, etc. I can then commit the changes back, have IT integrate them into the main project and bring the site live.
I would also be remiss if I did not commend Eric for a finely written tutorial and companion video tutorial. Both were highly detailed and worked well together – if I did not understand something in the written instructions, I could go back to the video and watch Eric visually step through the task. This is how the Python class I took through Coursera/University of Toronto taught, and it was utterly effective.
I’m looking forward to whatever else Code Year does with GitHub. It looks like they want to do a web design project – and when you look at what I wrote above, it’s no surprise I am way too excited over that. 🙂
Oh, and if you want to follow me on Github, here I am.