Versionsverwaltung am Beispiel von GIT kurz erklärt
Eine Versionsverwaltung ist in der kollaborativen Softwareentwicklung nicht mehr weg zu denken. In diesem Beitrag werden die allgemeine Funktionsweise und die Vorteile erläutert.
- Autor:in
- Stephan Brun
- Veröffentlicht
Versionsverwaltung mit GIT
Ein wichtiger Bestandteil von der modernen Softwareentwicklung ist die Versionierung von Quellcode. Mit einer Versionsverwaltung kann sichergestellt werden, dass Änderungen nachvollziehbar sind und falls nötig auch wieder auf einen älteren Stand gewechselt werden kann. Eine Versionsverwaltung ist auch in anderen Bereichen sinnvoll, zum Beispiel bei einem Autor, welcher seine Texte verwalten möchte. Es gibt unterschiedliche Programme, wir setzen dabei auf das weit verbreitete opensource Tool GIT.
GIT ist eine verteilte Versionsverwaltung. Der Projekt-Code, beziehungsweise das Projekt-Repository, wird an verschiedenen Orten abgelegt. Zum einen lokal auf dem Computer des Entwicklers, zum anderen auf einem GIT-Server (z.B. bei Github oder für unsere Kundenprojekte auf unserem eigenen Intersim Git Server). Dies erhöht die Datensicherheit, Geschwindigkeit und minimiert den Netzwerkverkehr.
Branches, Commits … Bahnhof? Was gehört alles zu einem Projekt? Ein Projekt wird in einem Repository verwaltet. Dies kann man als Container sehen, welcher alles zusammenhält, darin enthalten sind Commits und Branches.
Unter einem Commit versteht man eine Änderung. Ein Commit enthält neben der eigentlichen Änderung auch noch weitere Angaben wie den Autor, Uhrzeit und eine Beschreibung. Somit werden die Änderungen nachvollziehbar und es gibt eine Versionshistorie.
Die Commits werden in Branches organisiert. Wie der Name es schon andeutet, auf Deutsch «Zweige», können mit diesem Konzept unterschiedliche Stände innerhalb vom Projekt verwaltet werden. Es gibt mindestens einen Hauptbranch («master»), sowie beliebig weitere Branches zum Beispiel für Features oder ältere Versionen einer Software. Dies ermöglicht die kollaborative Arbeit am Code. Mehrere Entwickler können so nebeneinander an unterschiedlichen Funktionen arbeiten, ohne sich gegenseitig zu stören. Wenn die Entwicklung einer Funktion abgeschlossen ist, kann sie mit dem aktuellen Projektstand verschmolzen, beziehungsweise gemergt, werden.
Somit kann abschliessend gesagt werden, dass eine Versionsverwaltung die Entwicklung von einem Projekt strukturiert und die Qualität der Codebasis steigt. Es ist jederzeit sichergestellt das die Änderungen nachvollziehbar sind. Ebenfalls wird damit die Basis für automatisierte Prozesse, wie Tests oder Deployment, gelegt. Die Versionierung bringt Vorteile für die Entwickler, sowie auch die Kunden, eine klassische Win-Win Situation.
Verwandte Themen
Weiterführende Projekte und Inhalte zum Thema