Els sistemes de control de versions s’utilitzen per a mantenir una història sobre totes les modificacions que s’han realitzat en un conjunt de fitxers. Així ens permeten veure quan es van modificar els mateixos, qui va fer la modificació i fins i tot tornar a un estat anterior. Així aquestes aplicacions s’encarreguen de detectar els canvis que s’han dut a terme a un conjunt de fitxers, compartir modificacions amb altres usuaris i fins i tot barrejar conjunts de canvis. També ens permeten crear ramificacions dels nostres fitxers, on podrem desenvolupar noves funcionalitats de forma paral·lela.
En l’àmbit del desenvolupament d’aplicacions els sistemes de control de versions s’utilitzen per mantenir un històric dels canvis i així poder determinar quin d’aquests canvis s’inclouran en el llançament d’una nova versió de l’aplicació. També ens permeten etiquetar diferents canvis amb un nom, per exemple versió 1.0.0 i poder-nos referencia a ells en un futur. El fet de poder marcar el punt en concret en que s’ha fet el llançament d’una versió i la possibilitat de ramificació permet que els desenvolupadors puguin desenvolupar noves funcionalitats i corregir errors que s’han trobat en versions anteriors sense que una cosa molesti a l’altra.
Actualment existeixen dos tipus de sistemes de control de versions: el centralitzat i el distribuït. Els primers emmagatzemen tota la història dels fitxers en un servidor central, que és accedit per a diferents usuaris. Els segons mantenen tota la història de les modificacions a cada copia del repositori permeten compartir modificacions entre les diferents copies sense passar pel repositori central.
Tot seguit us deixo una llista dels diferents sistemes de control de versions existents en funció del seu tipus:
Centralitzats:
Descentralitzats:
Actualment hi ha empreses que s’encarreguen de proveir un entorn on pots guardar i compartir el teu codi gracies a l’ús d’un sistema de control de versions. També permeten que el teu codi sigui totalment accessible a través d’una interfície web, i que aquest pugui ser visualitzat/modificat per a qualsevol usuari de la xarxa. L’existència d’aquest proveïdors fomenta la col·laboració entre usuaris d’arreu del món.