Understanding Git!

If you are new to git, it may take some time to understand the git philosophy. I struggled a bit in the beginning, but got over it. I would like to make it easy for you or at least take you in the right direction.

Git was created by Linus Torvalds during the development of linux kernal when he was not convinced about SCM tools available at that point in time. He envisioned a version control system which is fast and can be used for large projects.

If you have been using a version control system which is a centralized one like SVN, git is quite different. Git is a distributed version control system. In SVN, you have a server or a centralized repository which manages the source code and versions, to which all developers commit their files. In Git all the developers have a copy of the repository with them in their machine.This is a full fledged repository with all the history and full version tracking capabilities. So as you might have started guessing, you can work in the local copy, make commits and even work offline. And since each have their own copy, it is also easy to restore repo in case your server goes down.

Git Philosophy

As discussed above, distribution is the core of git. Being able to work offline is yet another aspect which differentiates it from other tools out there. Just think of the advantage of not having to go over the internet for each and every operation! This makes diff’s, commits etc seamless and fast. The only time you need to have the git server available is when you decide to push your code or make your code available to others.

Another good thing about git is how easy branching can be done. Think of a situation when one of you or a team decides to work on a feature which is to be done in isolation and at a later point of time make it available to the master. Creating a branch and merging it to the master is quite a task in other tools like SVN for example. You will really love and admire how easy it is to branch out and merge later. This way your master is always clean and ready to go production any time and when features are tested and verified, it can be easily integrated to master branch. Yes, there will be instances of conflicts,but it should be relatively easy to manage them.

Getting started.

There are numerous resources out there to get going. The best part is that, setting up a git repo is very easy and can be done after installing git in your machine. You can try out different things then and there itself. If you need to have a remote server and see how that works, you can think of using GitHub.

Leaving below a list of resources to refer and learn git.

For advances reading:

Happy coding!

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.