Posted on: 25 June 2014
On 17 June of this year we had our first bigger evening workshop. I think nothing could have been more fitting than to have Git and GitHub as the topic, and Andrew Nesbitt, who is a developer at GitHub, as the speaker. We use Git and GitHub a lot for CodeHub (I am publishing this on GitHub pages), and knowing about them is crucial if you want to collaborate on code.
The first thing we did in the workshop was to set up a GitHub repository for each us to use for a GitHub pages website. This way any changes could directly be seen in the browser. Andrew used a special GitHub account set up for his rabbit Bertie. We then cloned the repo to the local machine and manipulated it with basic git commands. (Add and commit files, look up previous commits etc.)
Something I did not know was that there are GitHub clients for Windows and Mac. These make it a lot easier to interact with GitHub, especially for Windows users. There is no need to generate and install keys anymore. The client also comes with Git and a command-line shell included.
As a next step, we forked our neighbour’s repository, made some changes to it, and then issued a pull request. In turn we had to accept the pull request from our neighbour. I had two that created a conflict which took me a bit to sort out, but I managed. GitHub also helps with telling you what commands to use.
We then looked at branching and merging. Andrew went through some examples that we could follow along on the command line.
Andrew also answered individual questions of attendees during the workshop, of which there were quite a few. We also had a Q&A session at the end and looked at some interesting repositories. For example, there are whole programming languages developed on GitHub. And there is a tool that works in your terminal, where you ‘collaborate’ with a robot that creates a merge conflict for you. (Git-It, see below)
I am glad how this workshop went, and we had some very positive feedback. I am also very grateful to GitHub that they took over the costs for the room that I had to hastily rearrange after I learned we could not use the original venue. - And thank you Andrew again for the great workshop!
Resources:
GitHub Training kit, including cheat sheet: http://training.github.com/kit/
GitHub clients:
mac.github.com
windows.github.com
Try Git (interactive tutorial): https://www.codeschool.com/courses/try-git
Git-It - Runs a little app in your terminal that takes you through various command-line challenges https://github.com/jlord/git-it
GitHub Explore area to discover interesting uses of Git https://github.com/explore