Versionsverwaltung ist ein System, welches die Änderungen an einer
oder einer Reihe von Dateien über die Zeit hinweg protokolliert,
sodass man später auf eine bestimmte Version zurückgreifen kann.
- Lokale Versionsverwaltung
-
Viele Menschen betreiben Versionsverwaltung, indem sie einfach all
ihre Dateien in ein separates Verzeichnis kopieren. Diese
Vorgehensweise ist sehr weit verbreitet und wird gern verwendet,
weil sie so einfach ist. Aber sie ist eben auch unglaublich
fehleranfällig. Man arbeitet sehr leicht im falschen Verzeichnis,
bearbeitet damit die falschen Dateien oder überschreibt Dateien, die
man eigentlich nicht überschreiben wollte. Aus diesem Grund, haben
Programmierer bereits vor langer Zeit, lokale
Versionsverwaltungssysteme entwickelt, die alle Änderungen an allen
relevanten Dateien in einer Datenbank verwalten.
- CVCS -Centralized Version Control System
-
Ein weiteres großes Problem, mit dem sich viele Leute dann
konfrontiert sahen, bestand in der Zusammenarbeit mit anderen
Entwicklern auf anderen Systemen. Um dieses Problem zu lösen, wurden
zentralisierte Versionsverwaltungssysteme entwickelt (engl.
Centralized Version Control System, CVCS). Diese Systeme, wozu
beispielsweise CVS, Subversion und Perforce gehören, basieren auf
einem zentralen Server, der alle versionierten Dateien verwaltet.
Die Clients können die Dateien von diesem zentralen Ort abholen und
auf ihren PC übertragen. Den Vorgang des Abholens nennt man
Auschecken (engl. to check out). Diese Art von System war über viele
Jahre hinweg der Standard für Versionsverwaltungssysteme.
- DVCS - Distributed Version Control System
-
Bei DVCS ist man nicht an einen zentralen Server gebunden, um alle
Versionen einer Projektdatei zu speichern. Jeder Mitwirkende verfügt
hier über eine lokale Kopie "Klon" des Hauptrepositorys, das heißt
jeder verwaltet sein eigenes lokales Repository und hat dies auf
seiner Festplatte. So kann man das lokale Repository ohne Störung
verändern und aktualisieren.
Was sind die Vorteile hierbei?
-
Vorgänge wie "Push/Pull" sind sehr schnell, das nur auf die
Festplatte zugegriffen werden muss und nicht auf den
Remote-Server. Daher brauch man auch keine Internetverbindung.
-
Änderungen können lokal geschrieben werden, ohne das
Hauptrepository zu manipulieren.
-
Da jeder Entwickler über eine vollständige Kopie des
Projekt-Repositorys verfügt, kann er Änderungen untereinander
austauschen, wenn er Feedback erhalten möchte, bevor er
Änderungen im Haupt-Repository beeinflusst.
Hier findest du einen
Git-Kurs
mit dem du Spielen die funktionen von git lernen kannst.
Du kannst aber auch hier bei
t3n
nachlesen wie du schnell in Git einsteigst.