A lot of newbie in the computer field often get confused by this term Git. Often they start to relate Git and GitHub as the same thing and get confused.
Let’s make it simple for you today and discuss what is Git?
A Git is a platform which coordinates the collaborative work done by multiple people on a single file or project as a whole. It is the most common version control system in the market today.
A version control system is the one which has a specialized task of managing the version of a project.
Here is the example to make you understand what a version control system actually is.
Suppose you have a word file. You update it daily with hundreds of lines and also you have installed version control system on this file.
Every day you edit it and make a commit in your version control system for the same file. This commit is just like a commit in the database. By this, you specify that changes done are final and should reflect in the output.
Now one day you realise that you have made some wrong changes in the file after you commit it. A, so the extent of change is so large that it is nearly impossible for you to change hundreds of lines from the file. Here is the situation where version control system comes into play.
You can simply ask your version control system that I want the copy of my file which was there before the last commit. In Fact, you can ask for the file which you have committed 10 days ago or more.
Now think about this for a project where many users are editing the project files at the same time in a centralised location. How one can keep track of the files. How one will find out which is the latest file in the system. Version control is of great help here.
This is just an example to make a clear picture of version control system. There are many other things that can be done with it. We shall discuss them later in the post.
So coming back to the GIT,
Git is an open source tool published under General public license. It is the most powerful and reliable version control system in the market as of now. Being distributed in nature means having no central repository, Git has a large number of project rely on its system (both open source and commercial projects).
It was developed by Linux Torvalds in 2005 during the development of Linux kernel in which a large number of programmers were actively involved in development from all around the globe.
Git is majorly used in managing source code in software development.
All the major operations in Git are developed keeping in mind the performance related issue, hence branching, committing, merging are all done in a performance-centric manner.
Its other competitors such as SVN and CVS legs behind Git in performance criteria. Moreover, Git is the only distributed version control system among them.
Coming to the security of GIT and its file system, you can be sure you have an authentic content history of your source code.
Contents of GIT repository such as the relationship between the files, directories and objects are maintained by the SHA1 hashing algorithm. So no worries on the authenticity part in git.
How Git works.
The methodology used in git is far more different from its competitors.
The way Git thinks about its data is the major difference.
Most other systems store information as a list of file-based changes. These systems (CVS or SVN) think of the information they keep as a set of files and the changes made to each file over time.
Methodology used in Git is quite different. Git thinks of its data more like a set of snapshots of a miniature filesystem. When one save the state of a project or do the commit, git takes a picture of what all your files look like at that moment and stores a reference to that snapshot.
Suppose if some files in the project have not been changed, then it does not store the file again. Instead it just links back to the original file it has stored previously.
Git thinks about its data more like a stream of snapshots.
You can download git from its official website and start the era of versions in your project with better efficiency and maintainability.