To define it in simple words, GitHub is a sort of social networking site for developers, where they exchange codes instead of messages. This is one way of defining GitHub but this is not sufficient to describe its worth. To learn about Git and Github in details, checkout our Git Tutorial for Beginners
The ‘Git’ in GitHub:
To understand GitHub properly, you must first have an understanding of Git. Git is an open-source version control system that was started by Linus Trovalds – the same person who created Linux.
Version Control System:
So, Git is a ‘version control system’, but what does that mean? And why is it used?
Whenever developers create something(a website, an application to name a few), they are constantly introducing changes to the code. It is often seen that in between all these changes they end up doing some unintentional modifications in the code which gives rise to errors and tracking such errors consumes a lot of time.
Another problem that developers often face is collaboration for projects. Most of the times it’s not possible for all the team members to sit together and do all the work and exchanging codes through pen-drive or e-mails is quite a tedious task to do.
Wouldn’t it be great if we had our previous version of the code which was free of errors saved somewhere? And if we could contribute to a project by just sitting in our respective homes? Obviously Yes! And the solution to all these problems is the use of version control system.
In a Version Control System, all the changes that we make in our code get saved in the version database. And we can track all the changes, each such change in Git is termed as a ‘version’.
The ‘Hub’ in GitHub:
Where Git is a version control system, GitHub is a platform for sharing and collaboration. It’s a Hub where developers can store their projects and network with like-minded people.
In Version Control System our main copy of project is stored in the Central Server. Based upon the access to this central copy and its usage in our local computer Version Control System(VCS) is divided into 2 types:
- Centralized VCS: Centralized VCS keeps the history of changes on a central server from which everyone requests the latest version of the work and pushes the latest changes to. You need to be online to work with CVCS.
- Distributed VCS: Distributed VCS, everyone has a local copy of the entire work’s history. This means that it is not necessary to be online to change revisions or add changes to the work. “Distributed” comes from the fact that there isn’t a central entity in charge of the work’s history so that anyone can sync with any other team member. Git is a Distributed Version Control System.
Social Networking aspect of GitHub:
With the advent of GitHub, most of the problems faced by developers have been wiped off. Its social networking aspect is something that makes it unique and powerful. Each user on GitHub has their own profile, which acts as a resume, showing your past work and contributions to other projects via pull requests. Most companies now days often ask for person’s GitHub account. There are a lot of experts ready to share knowledge out there and GitHub provides a good access to collaborate and learn from them and helps in giving your projects a greater height.
The use of version control system must be encouraged for projects. GitHub is not just for developers, but it is for every person or organization who wants to keep a record of changes made to certain documents.