What is git?
If you are in the technology field then you may have heard about git, GitHub, opensource, are they all same and why do you have to know about them. If you are planning your career as a programmer then the knowledge of git is a must for you because almost every IT company uses git. So without wasting your time let's start.
If you search about git on the web you’ll probably find it written something like a version management system or distributed version control system. What is a distributed version control system?
As you all know a simple program is a file that has some code (source code) in it which performs some tasks. As you’ll do a project in the future, or maybe you have done some project, so you know it's hard to manage the versions of the project like you created a program that performs simple math calculations, and now you realize you want to add some more operations in your software like some geometry formulas or you want to change the look of your software then you’ll do changes in that file and after updating, your program is not working or that upgrade is not needed for your program, now you can’t go back so if you are clever you may be created a copy of your program which stores an old version of the program, but when you are working on a big project which has many files, and you have to add many features then it's hard to create a copy of your files manually, and when you work on big projects in industries then there are many people working on the same project, and it becomes impossible to manage people as well as versions of your program. What git does is it creates a copy of your program every time you commit (save) and it manages the people working on the project so when you create some changes in the file and your project partner creates some changes Git manages both of the files and shows you which lines are changed which files are changed. Having version control allows you to track what you worked on what your friends are working on, so you don't clash the changes, and you don't overwrite each other's changes and even if you do work on the same files the version control system will tell you that "you're going to override your friend's changes don't do that" or if you want to take a look at, or you want to control how it merged together you can do that, so you can't do anything without version control that is the very reason why we use version control is to allow us to work together and collaborate in a more efficient manner.
So the question comes what is the difference between git and GitHub? Git is installed on your local system and gives you a self-contained record of your ongoing programming versions. It can be used without any cloud-hosting service. GitHub is developed as a Git repository(repository in basic terms ‘Folder’) hosting service, Git repository hosting service is an online database that allows you to keep track of and share your Git version control projects outside your local computer/server.
Unlike Git, GitHub is cloud-based. Both Git and GitHub give programmers valuable version-control functionality and help so that they can build ongoing coding projects without being afraid of messing everything up. GitHub is just an improved product of git technology.
So because of GitHub, you can share your projects with the entire world if you want to, and then they can clone your source code for free to improve its functionality maybe find out some bugs in it and many more things, then they can send you a copy of the new code. If you like it you can merge it into your original code that’s what we call open source. Open source is software for which the source code is made freely available and may be redistributed and modified.
Here are some examples of open source projects?
- Android
- Linux
- Visual Studio Code
- Flutter
- TensorFlow
And many more...