back
What is a GitHub?
Web Development

What is a GitHub?

By Mainak Biswas December 22, 2014 - 1,262 views

With over 3.4 million users, GitHub is one of the world’s largest open source communities to collaborate and share project development through collective contribution to the repositories. GitHub is a platform that has encouraged developers across the world to be pro-active and contribute generously.

Centralized repositories are used to store these revisions and keep the whole project together. Applications are constantly revised after its initial release as we frequently encounter the release of new versions of the application. These revisions are contributed by the developer community across the world. They make constant changes to the code. Whenever anyone has to make the changes they download the latest version from the repo to their local computer, make the changes and then upload the revised version in the repo. Every project has its own repository with a different URL.

More about GitHub

Specifically, Git is a version control system designed to manage and store revisions in the project. It was initially developed by Linus Trovalds, the man behind Linux OS, in 2005 for Linux kernel development and has since then gained the reputation of being the widely-adopted version control system for software development. Git is a highly efficient and capable system to make, store and maintain file integrity.

GitHub has both public and private repositories. While public repository is available for free, private repository VCS is sold to enterprises and is a source of money for GitHub. GitHub Enterprise, meant for large enterprises, allows them to host the repository within the firewalls of their company.

Challenges faced prior to GitHub

Contribution to open-source projects was a complicated process before. You were supposed to download project’s source code to your local source; and then make the changes and create a list of changes termed as “patch”. This patch was then e-mailed to the project’s maintainer. The maintainer was then supposed to evaluate the patch and take a call whether the changes need to be merged.

There are many other version control systems like Subversion and CVS used by the developers but GitHub has been the most preferred version control system due to its various features like bug tracking, issue tracker, feature requests etc.

Features of GitHub:

  1. While Git is a command line tool, GitHub offers a web-based graphical interface with easy integration with desktop and mobile.
  2. GitHub offers access control and collaboration features such as task management tools for every project.
  3. Code review facility in GitHub workflow allows discussion around the proposed changes. As soon as the pull request is made, a review session begins which is open to feedback. The project maintainer can see the contributor’s profile, which includes all his contributions to GitHub in the past. If the patch is accepted, the contributor is given due credit on the website, which is also reflected in his/her profile.
  4. The most important functionality in GitHub is forking. It allows a user to copy a repository from one user’s account to his account. This way, even if he doesn’t hold the access rights to the code, he can still modify the code and send a pull request. The original code owner can then merge the changes with the original repository. Thus, forking provides seamless collaboration among the users.
  5. Besides handling codes, it can be used to manage non-code files like word documents and final cut projects.
  6. It uses a simplistic way for text formatting through GitHub Flavored Markdown, which offers additional features as compared to Standard Markdown.
  7. Project’s issue page tracker is fairly easy to use making your life simple. You can filter by assignees, labels, milestones and by open & closed issues. Both registered and non-registered users can view issues on public repositories and only users with a profile can create, manage, discuss and contribute content to the site. But the same is limited to teammates and collaborates on private repositories.
  8. GitHub offers its users vibrant social networking functionalities like feeds, followers, wikis and a social network graph to display how developers work on their version of repository.

Apart from that, GitHub can render 3D files that are previewed using STL file viewer displaying the files on a 3D canvas.  It even allows you to host small websites from its public repositories.

Page Scrolled