Ziel der Versionsverwaltung ist es, Daten, Arbeitsschritte und Verbindungen logisch und übersichtlich in einem gemeinsamen Archiv zu speichern. Quellcode-Dateien und anderen Daten werden darin hinterlegt und archiviert. Möchte ein Entwickler oder eine Entwicklerin an einem Projekt weiterarbeiten, können die Daten aus dem Repository auf eine lokale Festplatte kopiert werden. Diesen Vorgang nennt man „Auschecken“. Der Entwickler oder die Entwicklerin arbeitet dann mit den lokalen Daten, führt Änderungen durch oder verwirft vorherige Änderungen. Ist die Arbeit abgeschlossen, wird der neueste Stand des Projekts wieder in das Repository geladen. Hierbei spricht man vom „Einchecken“. Alle Änderungen und Kommentare werden dabei protokolliert.
Dieser Ansatz hat gleich mehrere Vorteile: Zum einen können Personen an einem Projekt arbeiten, ohne dass alte Stände überschrieben werden. Sämtliche Entwicklungsstände werden stattdessen protokolliert, sodass es möglich ist, bei einem Fehler oder einer falschen Entwicklung wieder zu einem alten Entwicklungsstand zurückzukehren. Zum anderen ermöglicht ein solches Repository die Arbeit in großen oder kleinen Teams an ein und demselben Projekt. Alle Beteiligten checken dabei ihre Stände ein und können so auch parallel entwickeln, ohne dass Stände überschrieben werden oder Änderungen verloren gehen. Alle Beteiligten können dabei theoretisch von jedem beliebigen Stand aus weitermachen, ohne Probleme, vorherige Absprachen oder Risiken.
Zu den bekanntesten Versionsverwaltungssystemen gehören CVS, GitHub und SVN.