バージョン管理システムとは、登録されているファイルの作成日時や変更日時、変更内容などを記録しておくシステムで、例えば「このファイル、1ヵ月前はどんな内容だったっけ?」「このファイルに誤った修正を加えて保存してしまったので、特定の時点の状態に戻したい」「このファイルの直近の修正内容とその修正を行なった人は?」といった疑問や要求に応えることのできるものです。
バージョン管理システムでは、管理する範囲を「リポジトリ」として登録し、管理したいファイルをこのリポジトリに登録します。このファイルを変更する場合には、リポジトリ上のファイルを直接変更するのではなく、リポジトリからファイルをコピーし、コピーしたファイルに変更を加えた後にリポジトリ上にそのファイルを再度登録します。これらの操作をバージョン管理システムのツールを使用して行なうことにより、ファイルの変更履歴や変更内容を蓄積していくことで、特定の状態への巻き戻しや変更内容の確認などを実現します。
バージョン管理システムは、その性質から複数人でのソースコード開発の際に極めて強い効果を発揮します。「リポジトリ」を特定のサーバに配置しておく「集中型」と、複数のサーバに配置する「分散型」などがあります。