Step 68: Put Everything Under Version Control~ Diomidis Spinellis

Birat Rai
3 min readMay 29, 2019


This is the 68th Step towards gaining the Programming Enlightenment series. If you didn’t learn the 67th Step, read it.

Atlassian git flow

What is Version Control?

It is a component of Software Configuration Management which tracks the changes to documents or changes in the software code. Also, known as revision control or source control.

What are the different types of Version Control System?

The list of different VCS are:

  • Local Data Model: In this system, all developers must use the same file system. Example; Revision Control System (RCS), Source Code Control System (SCCS).
Local version Control
  • Client-Server Model: In this system, all developers use a single shared repository. Example; CVS (Concurrent Versions System) , SVN (Subversion) etc. Also, know as centralized VCS.
Centralized VCS
  • Distributed Model: In this system, each developer works directly with his or her own local repository, and changes are shared between repositories as a separate step. Example; Git, Mercurial, Fossil etc.
Distributed VCS

Why use Version Control?

We use Version Control because:

  • Collaboration: Allows developers to concurrently modify the same set of files with branching and merge conflict management tools.
  • Storing Versions: We can store the version of the software releases without much work.
  • Restoring Previous Versions: We can restore older version if we messed something.
  • History of Changes: With VCS we can track why certain changes were made in the past.
  • Backup: Using distributed VCS every local repository acts as a backup.

How to use Version Control?

Git is one of the most popular VCS. They have been used by great clients like github, bitbucket, gitlab etc. Great tutorial on how to use git are:

TL;DR Let’s Git this Party Started.



Birat Rai