This week we learned about the best version control, Git. It is the final piece before diving into python. After this, it's just going be like a jigsaw, using all the parts we learned so far to build a bigger picture.

Before going to git, what is version control at all?!

A version control system (VCS) is a system that records changes to a file or set of files over time so that you can recall specific versions later. So using a VCS  basically means that if you screw things up or lose files, you can easily recover. It's a lot of nightmares killed at once. That's not it, there are unseen consequences to this. VCS gives you, your entire work history. One can see how smart he/she got! or How dump they were!! Can not wait to figure that out.

Yet another meme!

Moving on to the one of the major issue developers face, collaboration. A  web-based hosting service of Git solves this finely. For example, GitHub. In GitHuB, you can see there are infinite contributors for "Linux kernel source tree". I will let you figure why is that! Hint: there always story behind such things. (Tell me when you figure out!)

Linux kernel source tree project in GitHub

By the by, the Linux kernel source tree is owned by Linus Torvalds, who is not only the principal developer of Linux but also the author of Git. Even thinking about it just blows my mind away.

If you think idea of Git itself is incredible, just wait till you see Git's internal workings! Here is an example. The way Git thinks about its data is totally different from other. Conceptually, most other VC systems store information as a list of file-based changes. But Git doesn’t think of or store its data this way. Instead, Git thinks of its data more like a series of snapshots of a miniature filesystem.

With Git, every time you commit or save the state of your project, Git basically takes a picture of what all your files look like at that moment and stores a reference to that snapshot. This reference is called checksum. To be efficient, if files have not changed, Git doesn’t store the file again, just a link to the previous identical file it has already stored.

Since everything in Git is check summed before it is stored and is then referred to by that checksum. This means it’s impossible to change the contents of any file or directory without Git knowing about it.

Other activities

Bye bye, Windows. Yes, removed Windows and reinstalled the OS due to some technical difficulties. However, this will force me into using Linux more and be good at it! (I hope that works) This time I am trying XUbuntu, it's a pretty lightweight distro. Quite faster than Ubuntu. The system shutdowns in just two seconds. I really timed it. It's kind of worrying! Is it even good?! Anyway getting used to Linux. Day-one was full on problem-solving. Lots of experimenting too. Actually enjoying it.

P.S.: As I promised last week, I am writing this blog from emacs! There are way too many shortkeys to learn.

and as always, Thanks for Reading:)