“Welcome home, developers – GitHub fosters a fast, flexible, and collaborative development process that lets you work on your own or with others.”
Github is a tool that allows developers to work together cohesively on projects, and roll back to previous versions should they ever need to. Any web development agency, or software development team, should have either Github or a comparable system in place.
At Purr, we use Github and sometimes mention it to clients, who quite understandably, don’t have the faintest idea what it is – that and why it a mutated Octocat represents it. We thought we’d take the chance to give you a brief overview of Git to give a better understanding of the way we work.
What is Git?
First and foremost, Github is an explanation of what service they provide, they are a ‘hub of Gits’. So what are Gits?
“Git is an open-source version control system that was started by Linus Torvalds – the same person who created Linux.
When developers are creating something (an application, for example), they are making constant changes to the code and releasing new versions, up to and after the first official (non-beta) release.
Version control systems keep these revisions straight, and store the modifications in a central repository. This allows developers to easily collaborate, as they can download a new version of the software, make changes, and upload the newest revision. Every developer can see these new changes, download them, and contribute.” (howtogeek)
To clear up some of the jargon, there are five key elements/keywords to understand:
- Repository – a digital directory or storage space where you can access your project, its files, and all the versions of its files that Git saves
- Branch – There is a master branch and branches that come off this. The master branch only contains the current stable release of the code. The sub branches contain versions that you are working on and you only merge this code in to the master branch once it is completed.
- Commit – an individual change to a file(s). Not dissimilar from hitting save on Microsoft Word, the difference being that every time you save, it creates a unique name that allows you to keep record of what changes were made, when they were made and by who. The advantage of this is that you can roll back to a previous version if the changes that were made are incorrect, no longer required or you need to recover something you had changed.
- Pull request – this is where you make a request for someone to review your work/changes and ‘pull’ them into the master branch, ready to be deployed onto the live version.
- Merge pull request – this is where the pull request is authorised and the modifications occur on the master branch.
Where it came from?
Github first hit the scene in October 2007 (as Logical Awesome). Needless to say, it was quick off the mark, with four full time employees and 20,000 public repositories within its first year of trading. By 2008 it was known as Github and was marketed as:
“A Web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features was launched. GitHub provides a Web-based graphical interface and desktop as well as mobile integration. It also provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.” (Startlin)
Within its first year as Github, the company had reached 46,000 repositories, of which 17,000 had been created just in a single month, rising to five million by 2013 and ten million in 2014.
Why use it?
Github gives a web development agency a greater level of control and monitoring of your project’s code. It provides a level of protection, if a fatal error occur in your latest release, there is a repository of all previous versions that can be recalled at a moment’s notice and enable you to rollback with minimal delay.
Github also provides an array of reporting and project management tools that allows companies to stay on-top of their developers’ activities and know exactly how far and how well they are progressing. Should a developer be falling behind on their work or require assistance on their project, support can be available to them (regardless of locations) and the project can get back on track.
One other benefit, is that if you were to discontinue your relationship with an agency, you can have all your website’s history made available to your new supplier. This ensures there would be no adverse effects of moving, as your new agency will have every change catalogued and commented on.
The future of Github?
Github has continued to diversify its offerings, and in a world that is ever more cloud based, its potential applications is near endless. Everyone who has their work reviewed at one point or another would benefit from the use of this application. Proving that they are looking to grow beyond solely supporting developers, in September 2015, “GitHub has 324 employees and 10 million users. Architects, musicians, city governments, builders and others are currently using GitHub to share and collaborate on projects beyond software code.”
Finally, the only thing I haven’t explained is the origin of Octocat. It was designed by Simon Oxley, the same man who created the Twitter logo (around the same time). There have been many different versions of this logo created by users. One thing’s for certain – there’s lots of Octocat mutations to come.
Coding, Developer, Development, Github, Website