Per Versioning si intende la gestione di più versioni di uno stesso codice sorgente.
Posso tenere traccia delle modifiche fatte da me ogni giorno al codice (commit)
Posso vedere le modifiche fatte da altri collaboratori e fonderle con le mie (merge)
Posso in qualsiasi momento tornare a una versione precedente e confrontarla con l'attuale (checkout)
Posso gestire rami diversi (branch): di solito un ramo principale che viene di fatto distribuito al cliente, e dei rami secondari che gli sviluppatori usano per lavorare agli aggiornamenti
Lo strumento usato in tutto il mondo per farlo è git.