Learning Git

Source: http://memeshappen.com/meme/one-does-not-simply-a/one-does-not-simply-understand-git-60285/10

What is Git?

To put in simple words, git is a tool that lets you create different snapshots of your files and directories in the project. So lets say you start working on a project and you create some files. After some point you feel that you have reached a milestone in your project(could be you added a few lines of code to some file in project), you would want to mark this point with the things that you have done. So you do a git commit at this point which would take a snapshot of everything in the project and will provide you an ID.

Since projects are not one timers, they require changes with time to time, it is very important to mark progress of project which is done using git. Else you loose track of what was done and what went wrong. By making use of git we can go back to a previous version of our project if we feel that a newer version brought some bugs in the project.

All of this happens locally on your machine. So any changes you make, are visible only to your local machine. But in case if you want to share your project with others and collaborate with them, how are you going to do that? That brings us to our next question.

What is Github?

Github is a web based git and hosting company. There are others as well, Gitlab, Bitbucket, etc. But Github is the most popular amongst all. Github offers free unlimited open repositories which can be viewed by all and the private repositories come at a cost on github. If you still want free private repositories, try out Bitbucket.

So once you have made some commits to your project, you are ready to push your code to the cloud(github, gitlab, bitbucket) so that your friends can see what all changes you have done on the project.

Your friends simply do a git pull and all your changes will be synced to their machines.

How to get started?

I know things are easy said than done, which is why you must start experimenting with git yourself to get a better understanding of how things are working deep down in the software development process. Get GIT for your machine and start now.

You should start learning GIT by doing, so I recommend learning GIT from

Codeacademy: Learn Git