A version control system is a repository that stores different versions of a collection of files over time. It allows teams to create and manage changes to files collaboratively. Version control systems help teams communicate changes, recover accidentally overwritten files, and deploy different versions of code while keeping a record of who made changes and when.