En un proyecto grande de Software es muy complicado sincronizar todos los cambios, evitar conflictos, errores y todo tipo de problemas derivados de tener a muchas personas trabajando sobre el mismo código fuente.

Por ejemplo, dos desarrolladores podrían hacer distintos cambios en la misma sección de código, o una parte del código podría verse afectada por un cambio en otra parte, o un cambio debe ser revertido afectando múltiples desarrolladores, etc.

Un control de versiones (VCS en inglés) permite:
Por un lado, mantener una historia de todos los cambios, permitiendo revertirlos si es necesario.
Y además organizar el trabajo de múltiples desarrolladores sobre el mismo código.

Entre las capacidades que suelen tener los VCS encontramos:
- Proponer cambios para revisión antes de realizarlos.
- Revertir cambios totalmente o parcialmente.
- Mezclar cambios.
- Resolver conflictos.

Actualmente hay muchas opciones disponibles, aunque la más popular es Git (desarrollada por Linus Torvalds).
Esta es una lista de los principales VCS:
    #1) Git
    #2) CVS
    #3) SVN
    #4) Mercurial
    #5) Monotone
    #6) Bazaar
    #7) TFS
    #8) VSTS
    #9) Perforce Helix Core 
    #10) IBM Rational ClearCase
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence