Git is a tool.
Definition: Git is a distributed version-control system for tracking changes in source code during software development.
Github is a platform.
Definition: GitHub is an American company that provides hosting for software development version control using.
In my words(for my absolute beginner friends), Version Control process is the one which handles all the issues that can arise due to multiple people contributing on a single project.
No! It won't solve your bugs and errors but it makes the process seamless.
Let me paint a more easier to understand picture,
Imagine you and your friend get a college project.
You come up with a bifurcation of tasks between you two and start coding.
Now after weeks of hard work when you try to merge both the parts it throws an error, you solve one it throws another and another and so much to the point that.....(you know it!)
Even if you solve the merging of both parts, now you need someone to validate your code before going forward. You'll zip the folder and try all the platforms to send it to you senior(mentor).
Even if you succeed in sending, now this mentor has too many suggestions and you will find yourself in a never ending sequence of calls and screenshots, etc. to show what where and how it's bad.
This is just two contributors and see the frustrating problems. The intensity of these issues increases exponentially with the number of contributors and these solutions ability to solve your problem decreases as well.
This is where a version control system comes in to play.
- You and your friend could have uploaded a main working copy in master branch.
- Taken out your own branches and experimented on it leaving the working product untouched.
- You could have periodically merged your bug free fully tested code in to the master branch and keep on adding new features in your own branch. And also could have asked that sweet senior(mentor) of yours (who agreed to help you) to keep checking the merge request code that you created.
Yeah yeah I know those who knew this or could understand this wouldn't have clicked on this post.
So to break it down for absolute beginners, friends read in any way you want, I promise the next 20 lines will give you an answer.
It is basically a tool or a software which allows you to do version control and code sharing by providing all the beloved commands that you will see in upcoming posts.
It is the local part of version control process i.e. allows you to contribute from and on your local machine and just like any other software, it is also installed locally on your computer
Just like most of tools(softwares), it has a GUI as well as a CLI
GitHub however is a platform.
It is a cloud based platform on which git(tool) is hosted.
It is the network or the remote part of version control process i.e. using git you can connect to this cloud and upload/download resource
this is why you can use the same git commands everywhere(git is used) like GitHub, GitLabs, etc.
We will discuss about the commands in next post.