Coder Bee
Published in

Coder Bee

What is Git?

Basics of the most popular version control tool used in software development

Photo by Yancy Min on Unsplash

Think of Version Control as the system which meticulously keeps a history of every change you make in your code in every file of your project. It logs every detail of what the change was, at what time was it made and by who etc.

Think of it like if you are an author and you keep editing the book it keeps track of all history and revisions so you can easily go back to the version you like if you make mistakes or want to fix something.

It also helps give credit to the author and makes collaboration easier among teams when multiple people are working on different features on a project.

If you want to read more check this out.

History Of Git Version Control:

Git is a version-control system that was developed by the Linux-open source community under the guidance of Linus Torvalds. It mainly aimed at solving some of the problems they faced with Bitkeeper a Distributed Version Control System used back in 2005.

The major problems Git addresses are:
1. Speed
2. Simple design
3. Strong support for non-linear development(thousands of parallel
4. Fully distributed.
5. Able to handle large projects like the Linux kernel efficiently(speed and data size).
6. Easily manageable code for a team or by any number of developers.

Git Basics:

A working copy of the project is stored as a git repository/directory either on your local machine or to an upstream repository(either hosted on a server or an online repository like github, bitbucket etc.). it contains the history of your commits, different versions over time, different tags and branches local to that repository.

A normal directory can be made into a git repository by using the command ‘git init’ which is covered under git commands.


Staging or Index area holds the snapshots of the changed files of the working tree. The snapshots are considered as the contents of the next commit. Stage is used mainly to easily revert to previous commits. It is strongly recommended to stage your files using ‘git add’ but you can also directly commit without staging the files.

Working tree:

The user could create, modify or delete files and this collection of files is called the Working Tree. You can work on the working tree by modifying content and committing the files to the git repository using ‘git-commit’.

Branches and Tags:

A branch is a name given to a commit. When you create a new commit the branch points to the latest commit along with the history of the previous commits. In short it is a successor to a series of commits and each commit knows its predecessor. A tag is a name given to a particular commit at a point where one can identify a particular change or commit.
There are mainly three stages of git version control system:

1. Making a local repository or directory.
2. Staging the files and taking snapshots.
3. Committing your project to a upstream/central repository.

Git Version Control System

Illustration by Janani Kakaraparthy

Git Installation:

If your ready to get your hands dirty, you can install git from here. This link will provide a complete understanding about installation of git for the OS you are running.

Keep Reading…

Disclaimer: The tutorial is based on Git and I’m only writing about it. I do not hold any copyrights to the tool.

Originally published at



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Sowmya Guru

Sowmya Guru

Freelance Android Engineer. Founder at Buy Me A Coffee if you find my blog useful: