Loading video player…

What is a Version Control System (VCS)?

This lesson is an introduction to version control systems or VCS. You’ll learn what version control systems are, how they work, the benefits of using one, and the different types of VCS systems available to you.

00:00 Hey there! Welcome to the introduction to Git and GitHub. In this course, we’ll cover the basics of working with Git, one of the most widely-used version control systems in the world. When we’re done, you’ll know at a high level how Git and GitHub work, you’ll be able to set up your own local and remote Git repositories, and you’ll even be ready to start contributing to projects.

00:24 So, let’s get started with What is a Version Control System.

00:28 What Git and GitHub—or, really, any VCS—are going to give you is peace of mind. Whether you want to work in a company, as a freelancer, or build the next big app on your own, you will need to use a version control system.

00:42 Using a version control system lets you code with confidence as you can move forwards and backwards in the timeline of your project, you can hunt the origin of bugs, prevent losing or writing over files, and you can collaborate with everybody on your project.

00:59 So, what are the basics of a version control system? Have you ever named an important file Version1, 2, 3, and so on? This is a very simple form of version control.

01:12 You want the ability to go back and get info out of those files and revert to or see the changes over time, but simply renaming them Version1 to infinity can get unmanageable pretty quickly.

01:25 This is where version control systems can save the day. A version control system will track the history of your files for you. You can save the state of your file or files at any point.

01:38 You can freely edit the files and keep working on them in that modified state until you are ready to save those changes and thus bring into the world a new version of your file.

01:50 You can even recall old versions of the file or files if you’d like. So, let’s take a quick stroll through the history of version control. As I mentioned earlier, the first way of version control is to simply rename files or directories on your local computer and use version numbers.

02:07 This, of course, is error-prone because what happens when your kids delete a file or you write over the wrong file or delete a directory? Big time bummer. So to combat these types of events, early version control systems housed a database on your local computer that kept track of changes on files under revision control.

02:29 This is also known as tracking. This local version control kept track of the changes between files. This is commonly called deltas. The next problem that needed to be solved was collaborating with multiple developers, and this led to centralized version control.

02:46 This is where the database was housed on a server that all clients could access and check out the latest snapshot of files and directories. Both of those methods work fine, but you’ve probably already figured out—because you’re smart—there’s a potential fatal flaw.

03:03 If you lose the database because, say, the server crashes or the disks go bad,

03:09 all that work is probably unrecoverable. Distributed version control systems were then created to mitigate that risk of losing everything. In a distributed version control system—we’ll now call them VCSs—each client checks out a local copy of the repository, including the changes.

03:29 Every clone is really a full backup, so in the event of a server crash, the client repositories can be pushed back up and restore the server. In this onscreen example, we see just two computers, or nodes, but there could be tens, hundreds, even thousands in a distributed version control system. Git itself is a distributed version control system.

is there a GIT equivalent for MS Word or can GIT be used for any file type? Thus instead of version1.doc version2.doc it could be managed in a VCS like GIT?

Become a Member to join the conversation.