Le contrôle des versions répond à deux problématiques.
- D’abord, le développement d’un projet informatique implique la création et la modification d’un ou de plusieurs fichiers. Au fil du temps, ces fichiers sont modifiés (enrichis, supprimés...). Or, il arrive souvent que l’on veuille revenir à l’état précédent d’un fichier, afin, par exemple, de voir quelle modification a entraîné l’apparition d’un bug, ou de remettre un passage que l’on avait supprimé.
Un système de gestion de versions garde l’intégralité des états successifs de chaque fichier, permettant à tout instant de revenir en arrière. En bonne pratique, tout changement d'état est accompagné d'un commentaire. - Ensuite, le développement d’un projet informatique implique généralement plusieurs personnes simultanément. Dès lors que ces personnes sont amenées à intervenir sur les mêmes parties du projet, il convient de gérer correctement les modifications concurrentes des fichiers. Un système de gestion de versions joue ce rôle de médiation.