In January 2013 I joined the VisiLit team, causing the number of software developers to double from one to two. Many programmers out there will know that when it comes to sharing code in a group, things can get very messy. So myself and James started to discuss how we could share and edit our code at the same time without introducing annoying bugs into the program, and soon came across an application called Github.
Github allows users to keep track of changes made to shared coding projects, via an online account and Windows application. It is also useful for backing up individual work on a daily basis. If you simply want to share code with the public, membership is free. However, if you want to keep a repository private between a number of Github users, there is a small monthly subscription fee.
Once your repository has been created and your project uploaded, all users can clone the files in Windows and begin work on the code as they would any other project. When changes have been made, they can be reviewed in the Github application before the user commits them to the repository through their chosen branch, with the option to add a small description of the changes for the other members of the team to review. There is also an option to ignore certain file types created in the build or debug stages, that may not need to be shared with the group.
If I was to give one piece of advice to code collaborators planning to use Github, I would say avoid the “Fork/Pull” model at all costs. For smaller teams and organizations collaborating on private projects the “Shared Repository” model is far more suitable, something we learnt very early on in our Github experience. In the “Shared Repository” model, all users are granted push access to a single shared repository and topic branches are used to isolate the changes made. Also, if you are comfortable with command line control, skip the Windows application altogether and use the Git Shell to share and update your project changes.
It is fair to say that we spent more time in our first week resolving issues with our Github repository than we did developing the VisiLit project. From clashing merges to missing branches to failed commits, we must have hit every chapter in the Github handbook. However, once you get the hang of Git, it’s an invaluable tool for software collaboration and supports a huge number of programming languages. If you want to join Github, or read a bit more about it, visit www.github.com