Git & GitHub: Introduction to Version Control
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.
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.
- Local Version Control System
- Centralised Version Control System
- 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:
- 📧 Email: mhemakalyan@gmail.com
- 🌐 LinkedIn: @Hema Kalyan
- 🐙 GitHub: @KalyanM45
- 🌐 Website: Portfolio Website








