Git good…Beginner’s guide to version control systems

Steve Davis
2 min readAug 30, 2018

--

Imagine that you are a software developer working on a software project. Say that you are the only person working on it and there is a single file containing the source code. As you make changes to the code, you will save the different “versions” of the file each time you make a change. If you want to access a particular version of the code, you can simply open the corresponding file. You would know that all the changes were made only by you. Life is easy.

In reality, multiple developers collaborate to build software projects. The source code is stored in multiple files, and they undergo a lot of variations and edits over time. It would not be enough just to be able to pick particular versions of the files. You would want to be able to track the changes over time, identify the developer responsible for a specific change, compare different versions of the file, etc. it would be a complicated and error-prone endeavor to do this on your own without a well-defined system. Version Control Systems (VCS) were designed to address these requirements and make the development process easier.

Over the years, different types of VCS have evolved:

Local VCS — A single database stores the repository hosting all the different versions of the files. User(s) working on the same, local system can checkout a particular version of the file, make changes and check-in the code. e.g., RCS.

Centralized VCS — Similar to VCS, in that, a single server hosts the versioned files. But, users on different systems can check-out the files and work on it. e.g., CVS.

Distributed VCS — A server stores the repository with versioned files. Along with this, users store a copy of the entire repository on their local machines. Users make changes on local copies of the files and then merge the files to the main repository. e.g., Git

The current distributed VCS allows users to:

· Collaborate on projects

· Track all the changes made to a file

· Retrieve a specific version of the file

· Identify the person responsible for particular changes

· Compare changes across different versions

· Recover entire repository in case of a server failure

An important point to note is that VCS is not limited to software code. Almost any type of file on a computer can be managed using VCS — source code, graphic designs, web designs, etc.

Gitstorage is the perfect device for people developing new software or considering alternatives to cloud git repositories.

--

--