GIT is a part of the toolkit of every good developer. Just like the terminal, you should be good at GIT. Yes sure you can develop without GIT, but learning GIT is a must if you are working on a large project with multiple developers, or if you are working on an open source project.
Recently I had to do a small presentation to a group of young developers about GIT, I’m sharing the presentation here and adding more context in this blog post.
What is Git?
Git is a version control system, which means it tracks changes in your file system, whether it’s creating, editing, deleting a file, GIT will track all those changes and more. And you can travel back and forth between these changes and to any point of time. It’s like traveling back in time, and doing something you wish you would have done to your code.
GIT was created by the person who created the Linux kernel, Linus Torvalds in 2005 to manage the development of the Linux kernel.
Git comes pre installed in most Linux distributions and MacOs, if you are using windows you might have to download Git from https://git-scm.com
With GIT your code is decentralized
If you are working on big project with fellow developers, your project/code is decentralized thanks to GIT. Which means that your colleagues are having a copy of the exact same codebase as you, and each and everyone is connected to everyone else thanks to GIT.
If you are using GIT your team does not have to worry about not having a unified codebase, or having to email files with one another.
GIT learning curve is steep
Personally I believe GIT has a steep learning curve. Even though you can easily master git add, and git commit. It takes time to learn the concept of branches, stashing, and rebase and so on.
I remember I used to commit some unfinished changes and switching branches, because GIT won’t allow me to switch or merge while changes are available, and then I learned the concept of stashing and how I can apply stashes at later point in the development.
Even now I come across feature in GIT which I have not used before, or which makes my current developing processes easier. Even while gathering information for the presentation I learned some concepts which I have not used before.
The presentation is a basic introduction to GIT, and good for someone who has not used GIT before. I hope it will be a good starting point for you to learn GIT and level up your development game.