Sitemap
Hema Kalyan Murapaka

Hema Kalyan Murapaka

A Data Scientist and Machine Learning Enthusiast

Git & GitHub: Introduction to Version Control

3 min readFeb 4, 2024

--

Hey there Medium Family!, welcome to the world of coding magic — Version Control. It’s like a time machine for your code, keeping track of every change and helping you collaborate smoothly. We’re about to explore the basics — Local, Centralized, and Distributed Version Control Systems — the tools that keep your code world spinning.

Press enter or click to view image in full size
Photo by Roman Synkevych on Unsplash

Version Control is a class of systems responsible for managing changes to files and programs. Specifically, A system that records changes to a file over time, allowing you to recall specific versions later. We can easily revert to the previous versions if a currently versioned file or the entire project becomes unstable. Now, let's look into the types of types of version control systems.

  1. Local Version Control System
  2. Centralised Version Control System
  3. Distributed Version Control System

Local Version Control System:

It is one of the simplest forms of a version control system, accessible to a single user. It features a straightforward database that records all day-to-day changes made to the files with a time stamp. The main drawback of this local version control system is its inability to collaborate with others, leading to potential issues when working on a project.

Centralised Version Control System:

To address the collaboration issue, Centralized version control systems were developed such as Perforce, Subversion, and CVS. These systems feature a single server that contains all project files requiring versioning. Consequently, every team member can access the project files stored on the server. In this version control system, administrators and project managers have complete control and monitoring capabilities over the developers, allowing them to determine each user’s capabilities. We need to do two things to make our changes visible to others: Commit, Update

Get Hema Kalyan Murapaka’s stories in your inbox

Join Medium for free to get updates from this writer.

Although it solves the collaboration issue, it has some serious downsides. Due to a single server setup, there is a notable single point of failure. if the server experiences an outage for an hour, collaboration becomes impossible during that period. Additionally, in the event of database hard disk corruption and the absence of proper backups, the risk of losing all the data becomes a significant concern

Distributed Version Control System:

In version control systems such as Git, Mercurial, and Darcs, users don't just check out the latest snapshot of files rather they can be able to mirror the repository including its full history. Therefore, if any server dies, and these systems are collaborating via that server, any of the client repositories can be copied back up to the server to restore it. To make our changes visible to others, four key actions are required: Commit, Push, Pull, Update

And that’s a wrap! Version Control is your coding sidekick, ensuring everyone’s on the same page and your projects stay solid. Whether you’re flying solo with Local, joining the teamwork tango in Centralized, or syncing up effortlessly with Distributed systems like Git, each has its groove. Remember, Version Control isn’t just a tool; it’s your guide in the wild coding adventure. Happy coding!

Connect:

--

--

Hema Kalyan Murapaka
Hema Kalyan Murapaka

Written by Hema Kalyan Murapaka

A Data Scientist and Machine Learning Enthusiast