Version control ή Revision Control είναι ένα σύστημα το οποίο κρατάει την ιστορία των αλλαγών που γίνεται στο κώδικα και στα αρχεία ενός λογισμικού, κατά τη φάση της ανάπτυξης του. E;iναι ιδιαίτερα χρήσιμο όταν αναπτύσετε project λογισμικού, όπου υπαρχουν  δύο ή περισσότερων ατόμων γιατί μπορούν να ενώσουν πολύ εύκολα τα κομμάτια του κώδικα που γράφει το κάθε μέλος. Αλλά και στη περίπτωση που δουλεύει κάποιος μόνος του, αν δημιουργηθεί πρόβλημα στο λογισμικό ή έχει κάποιο σημαντικό bug μπορείτε πολύ εύκολα να επαναφέρετε σε μία προηγούμενη έκδοση μέχρι να λυθεί το bug.

Τρία γνωστά Version Control Systems, είναι το Mercurial το οποίο δημιουργήθηκε το 2005 και είναι κυρίως γραμμένο στη python, Το δεύτερο είναι το SVN ή αλλιώς Apache Subversion , και το τρίτο είναι το Git το οποίο αναπτύχτηκε απο το Linus Torvalds για να βοηθήσει στην ανάπτυξη του Linux Kernel, τελευταία γνωρίζει μεγάλη διάδοση και αυτό.

Αυτο που επικράτησε ως πιο δημοφιλής τελικά είναι το git ο κυριος λόγος είναι το καθε repository είναι αυτόνομο. Εάν έχουμε εγκαταστήσει το git στο λειτουργικό μας σύστημα για να δημιουργήσουμε ένα κενό repository κάνουμε

git init

Για να προσθούσουμε όλα τα αρχείο από το project μας στη προσωρινή περιοχή (staging area) εκτελούμε

git add .

Για να αποθηκεύσουμε τις αλλαγές στο τοπικό repository

git commit -m "to minimima mou"

Μπορείτε να έχετε τα remote directories σε δικός σας server έχοντας εγκαταστησει λογισμικό όπως gitlab ή να χρησiμοποιήσετε δημοφιλής υπηρεσίες για αποθετήρια λογισμικός όπως το GitHub, BitBucket, BeansStalk. Αλλά ειδικά όταν αναπτύσσεται επιχειρηματικό λογισμικό και όχι απλά να κάνετε παραμετροποιήσεις η χρήση του source controls είναι απαραίτητη.