Developer Tool: GitHub – Version Control and Social Coding

What Is GitHub?

GitHub is a website and cloud-based service that gives developers the ability to store and manage and exchange their code, in addition to controlling the changes to it. Similar services are GitLab, Bitbucket, and Gitee.

Firstly, you need to know two underlying principles to understand what GitHub exactly is. These principles are:

      1. Version control
      2. Git

We are going to talk about the principles first, then we can dig deeper into GitHub.

by Amer Ghazal and Baraa AlFarkh

GitHub homepage network-based version management service for software projects
GitHub homepage: From there, developers can post their projects to the network-based version management service for software projects.

First, what is the version control?

The method of recording and controlling changes to software code is known as version control, sometimes known as source control. Version control systems (VCS) are software tools that aid software development teams in managing source code changes over time. Besides, version control systems help software teams operate faster and smarter as development environments have increased. They’re extremely beneficial to DevOps teams since they aid in reducing development time and increasing deployment success.

In a special type of database, version control software keeps track of every change to the code. If a mistake is made, developers can go back in time and compare prior versions of the code to assist in the correction of the error while migrating.

What are branching and merging?
A branch represents an independent line of the code developed. With branching, a developer can duplicate part of the source code (called repository). Then safely they can make changes to this part without affecting the rest of the project.
After that, once the code is working properly, they can merge it back into the main source code.

Benefits of using Version Control

1. Producing Backups
Every time a contributor clones a repository, he or she are effectively producing a backup of the current version of that repository. This is perhaps the most essential benefit of using a version control system. Having numerous backups on various machines is beneficial because it protects data from being lost in case of a server failure.

2. Experiment and Test
In today’s environment, any source code is always in development . There are constantly fresh features to add, new audiences to target, and new applications to be developed.
When a team works on a software project, they frequently use clones of the main project to build new features, test them, and ensure that they work properly before adding them to the main project. This approach saves time as different aspects of the code can be developed simultaneously.

Repository Page - where you can go through project's files and source code and see the changes history and everything about a specific project.
3. Keep a record of what has happened and what has changed

Keeping track of the changes in a code file might assist you and new contributors understand how a certain section of the code was created. How did it begin and evolve over time to get at its current state?

Furthermore, if the addition of a certain feature causing difficulties in extending or developing the project over time, employing version control allows developers to track that feature and update or delete it without affecting the project’s operation.

4. Contribute and collaborate
One of the most important advantages of version control systems, particularly the distributed version control system (DVCS), is that it allows us to participate to projects we enjoy despite the fact that we are in separate countries. We believe that the existence of DVCS was one of the most important factors in open-source technology’s present success.

Second, what is Git?

Git is an open-source version control system used by developers all around the world, which implies that any developer’s computer has access to the whole codebase and history, allowing for easy branching and merging.

Your Projects – an overview page that lists your projects (repositories) and brief information about each one such as the programming language used, …

So, What is GitHub?

GitHub is a powerful collaboration and project management tool for computer programming.
It makes it a lot easier for individuals and teams to use Git for version control and collaboration. It’s designed to let people share coding projects with others and help managing those projects while allowing others to also contribute to the source code. It’s useful when you have multiple people working on the same code-base and you want to keep track of and review everyone’s individual contributions to the project.
GitHub creates public repositories for your projects (which means everyone else has access to your project’s source code, too). Additionally, anyone can sign up and host a public code repository for free, which makes GitHub especially popular with open-source projects.


› A good resource to learn more about git and version control: Become a git guru.

› Software Development with L-One: intergrate efficiency

› L-One ebook: Making Digital Ideas a Success – Sourcing, Hacks and Funding Programs