What is GitHub?

Before discussing GitHub, first, we have to understand concept of Version Control System and Git. Then we will discuss GitHub.

1. Version Control System:

Version Control System is a component of software configuration management. Also we can say it is a “revision control” or “source control”. Basically we say that it is a software tool which helps to the software team to manage changes to source code over time. And it is managements of changes documents, software programs, web sites and other collection of information. It records changes and restore the erased or modified data or code.

Benefits of VCS:

  • This keeps tracks of changes in codes.
  • Collaboration between developers.
  • It provide merge and revert functionality for changes in files.
  • It keeps track of all data “Who Did What” in files.
  • Easily to recover data if something is messed up.

Some famous Version Control Systems (VCS):

  • Git
  • Apache Subversion
  • Mercurial
  • ClearCase
  • Perforce
  • Concurrent Version System

2. Git:

Git is an open source “Distributed Version Control System”. This is designed to handle everything from very large to small projects with speed and efficiency. In Distributed VCS, we can do local commits in our local machine and then we will push to server (remote machine).
Git started by Linux since 2005 and it was initially made as CLI (command line interface).
Git provide some essential features such as:


It is the directory or you can called as repo, where we store our data, files , source code and you can store other type of file related to your projects.


Braches is used to segregate the code or different type of versions of a repository at the same time. But if we talk about GitHub then “master” branch is used by default.


In other words, we can understand this as a “save”, means that if we have completed the changes then we go for the commits.


Push is used to send the projects or files to a remote server from your local machine, means that if we have modified or changed the file from the local machine and want to send the remote site then we will call the push request.


This request is just opposite the push request, if we change code from server site and wants to store in the local machine then we will go for the pull request.


This request is used to merge the code of two branches in your GitHub Repository.


GitHub is implementation of Git, started by Linux creator Linus Torvalds. While Git is a command line tool, GitHub provides a web-based and cloud-based service that helps the developers and new programmers to store and manage their code, as well as tracks and control changes to their code.

GitHub is a Git repository hosting service; it offers plan for free, enterprise and professional accounts. Free accounts are commonly used to host open source projects. It provides the web based GUI and also provides access control and collaboration features.
Features provided by GitHub:

  • Wikis
  • Restrict editing to collaborators only
  • Issues
  • Sponsorships
  • Projects


Advantages of GitHub for Developers are as follows:

1. Repository:

GitHub provides developers to make a repository for store files (HTML, CSS, JavaScript, Documents, Data, and Images), source code, projects and what you want to store. In GitHub repository, also include a licence file and a “README” file about projects. Repository is like a directory, where data are stored like cloud based services.

2. Fork:

This request provides access control and collaboration to developers. In this request, User A copies a repository from another user B’s account. This enables users to take project that you don’t have write access to and modify it under your own accounts.

3. Pull:

If developers make changes in codes and wish like to share, this “pull” request is used to notify the original owner. The repository’s collaborators can accept or reject a request. Once the request is accepted or opened, you can discuss your work with the collaborators.

4. Merge:

This merge option provides developers to merge the original repository with the changed repository. In this merge, when merging pull requests, you can allow any combination of merge commits, squashing or rebasing.

The code base to this tutorial is available in this GitHub repository:
How to make an API: GitHub link – https://github.com/digitalcrm/LaraveAPI

Corresponding GitHub link for article
How to make an API: GitHub link:-> https://github.com/digitalcrm/LaraveAPI
How to make Theme in Laravel: GitHub link:-> https://github.com/digitalcrm/ProjectTheme
Laravel package: GitHub link:-> https://github.com/digitalcrm/test_package
Make contact form in Laravel: GitHub link-> https://github.com/digitalcrm/Contact-Form/tree/master/Project
How to create an Admin Panel in Larvel: GitHub link:-> https://github.com/digitalcrm/Admin-Dashboard