Versionenkontrolle
Versionenkontrolle, auch Versionskontrolle oder Quellcodeverwaltung, bezeichnet Systeme und Verfahren zur Verfolgung von Änderungen an Dateien über die Zeit. Ziel ist es, frühere Zustände wiederherzustellen, neue Entwicklungen zu isolieren, Änderungen zu dokumentieren und Zusammenarbeit zu ermöglichen. Typischerweise arbeitet man mit einem Repository, das den gesamten Verlauf enthält, sowie Arbeitskopien der Dateien. Änderungen werden in Commits festgehalten, die Metainformationen wie Autor, Datum und Nachricht enthalten. Branches erlauben parallele Entwicklungen; Merges integrieren Änderungen wieder in einen gemeinsamen Stamm. Tags markieren bestimmte, meist stabilisierte Versionen.
Man unterscheidet zentralisierte (CVCS) Systeme wie Subversion und CVS, bei denen ein zentrales Repository der einzige
Wichtige Begriffe: Commit (Speicherung einer Änderung), Branch (Arbeitszweig), Merge (Zusammenführung), Clone/Klonen, Push/Pull (Übertragung von Änderungen zu/von
Vorteile der Versionenkontrolle liegen in der Nachvollziehbarkeit von Änderungen, der Wiederherstellung früherer Zustände, der Auditierbarkeit, der
Historisch entstanden frühe Systeme wie RCS, CVS und Subversion; Git wurde 2005 von Linus Torvalds als verteiltes