Last Updated: October 12, 2015 1

GitHub – Online Social Project Hosting

Found In: Business

In the highly technical world of software development, things tend to go one of two ways. Either you get a huge monolith like Microsoft with tens of thousands of employees with the best brains recruited from the best colleges around the world all working in a tightly controlled “factory type” with a top down management focus and discipline, or the distributed model of open source development teams working independently of each other. Whereas in the Microsoft model the source code is a closely guarded secret protected by copyright law where people must pay a license fee simply to use it, the distributed open source model is most often totally free for people to use or modify, and the source code is open and able to be rewritten at will. The main advantage of the open source distributed model of software development is the complete freedom of developers to act on their creative passions and to innovation with new functions in any way they see fit.

Linux is the perfect example of an open source software development project. Not only has Linux taken the world by storm as a highly efficient and powerful operating system because of its lean, multi-threaded kernel structure, substantial parts of the Internet routers and web servers are powered by Linux. When Linus Torvalds designed and wrote Linux, he always intended for it to be a free and open source development and distribution model so that others could invest their creative talents in its further development. One issue that does complicate such a development plan is how to manage the continually evolving version releases. That is, because there is no one single centralized version for people to access, and that there soon became millions of copies distributed worldwide each potentially changed from their original form by custom hacks and changes to suit different hardware configurations it runs on, there needed to be a system of version management.

Linux Creator Coded Git

And this need for version management is true for all open source software development. As new improvements are developed, or software patches available for people to apply, there needs to an effective way to manage the upgrading of systems to newer versions without losing the past improvements and functionality that individual developers have added leading up to the patch. Further to this, the development team themselves need have a revision management system so that as a development proceeds, each developer is able to track the progressive and collective efforts of all project team members, irrespective of where they are physically located in the world.

Out of the frustration that he experienced with the alternatives for version and revision management systems when he continued with the development of Linux, Linus Torvalds set out to build his own system, which he called Git. The word git in English slang has the derogatory meaning of “a stupid or unpleasant person”, a fact which amuses Torvalds. His name is not an anagram for anything. Over an intense few weeks in April, 2005 Torvalds completed his first hosted version of Git and it proved to be a tremendous success. Not only could people download the version of Linux they wanted, it came standard with a fully documented version and revision history tracking the development history.

Git truly excelled with high speed performance for updating Linux with patches in short order and with a minimum of fuss. So successful was it that Git quickly became widely used for the revision and version management tracking tool by many other open source software development project teams. And this gave rise to the launch of GitHub.

GitHub is Git on Steroids

GitHub is a web based hosting service specializing in Git hosted solutions. With 69 staff on the team, located all around the World, GitHub hosting comes with all the tools necessary to support the social networking communications between software development team members. That is, its platform includes inbuilt chat functions and many other ways for the development team members to interact. With GitHub’s client base of more than one million five hundred thousand members and now hosting more than two million five hundred thousand repositories of open source software in development, the advent of Git has been a new industry supporting it in its own right, with GitHub being the industry leader.

Because software is a living breathing compilation usually comprising tens of thousands of development hours, being able to reexamine the past development past, potentially reversing to a prior set state before embarking on a new path forward is essential. Easy to access open communication between development team members enables a greater degree of clarity and confidence at each stage of committing to adopting the progress that has been made. GitHub is especially useful for the various branches of in the project’s software development in the way it gives users a visual way to check the level of development in relation to each other branch. This way it is easy to see which branches are ahead or behind the other branches in development.

Comparing branches is extremely simple. The “compare view” of the user interface examines each branch and the commits that have been accepted along the way and visually highlights the differences in each branches development progress so far. In the same way, code reviews are very easy to do, with the ability to pull reports that include the corresponding code, code comments and code issues; all reported so that no valuable insights are left out or forgotten.

The software being developed all rests within its own repository, and the access provisions can be set to be private where only the register users with suitable access provisions can view and make comments and view or create “issues”. If the repository is set to be public, then any user can log in and create or view comments and issues. The brilliance of GitHub is its visual interface for ways that users can interact on any open source software development project.