A version control system, to a great extent, is based around the concept of tracking changes that happen within a collection of directories or files.
A version control system (VCS) allows you to track the history of a collection of files. It supports creating different versions of this collection where each version captures a snapshot of the files at a certain point in time and the VCS allows you to switch between these versions as well. These versions are stored in a specific place, typically called a repository.
The process of creating different versions (snapshots) in the repository is depicted in the following infographic. Please note that this picture fits primarily to Git. Other version control systems like Concurrent Versions System (CVS) don’t create snapshots of the files but store file deltas.