Podcast
Videos
September 5, 2022
Nov 2022
6 Min

Versionsverwaltung: Eine Einführung - Teil 1

Was ist Versionsverwaltung?

Versionsverwaltungssysteme ermöglichen das Festhalten von Änderungen an textbasierten Dateien inklusive Kommentar. Bei der schrittweisen Entwicklung eines Projekts erlauben sie somit das gezielte Zurückkehren zu jedem vorherigen Zustand. Bei der Softwareentwicklung gehören sie zu den wichtigsten Werkzeugen, da sie die Fehlerauffindung und das gemeinsame Arbeiten stark vereinfachen.

Warum brauche ich eine Versionsverwaltung?

Angenommen ein Projekt wird ohne Versionsverwaltung umgesetzt und es gibt einen Fehler. Zur Behebung dieses Fehlers machst du Änderungen am Code des Projekts und, wie so oft, musst du verschiedene Ansätze ausprobieren, bis du den richtigen Fix findest. Du stellst dabei irgendwann fest, dass nun etwas anderes nicht mehr funktioniert, weil du vor dem Beginn eines neuen Ansatzes den vorherigen nicht komplett rückgängig gemacht hast und irgendetwas vergessen hast, was genau jetzt Auswirkungen auf deinen neuen Ansatz hat. Und das Ganze geht immer weiter; je mehr Änderungen du machst, desto schlimmer wird es, bis das Projekt irgendwann gar nicht mehr funktioniert.

Mithilfe eines Versionskontrollsystems kannst du nach jedem Ansatz praktisch mit einem Klick zum vorigen Stand zurückkehren. Außerdem solltest du jeden erfolgreichen Ansatz mit einem Kommentar versehen abspeichern (ein sogenannter Commit), wodurch du den neuen Stand zum Zurückkehren markierst die noch weiter zurückliegenden Stände sind auch alle weiterhin verfügbar (in der sogenannten History).

Ganz vom obigen Beispiel abgesehen erschließt es sich außerdem leicht, warum kommentiert gespeicherte Zustände, zu denen man jederzeit zurückkehren kann und deren Änderungen man auch sehen kann (Commit Changes), das gemeinsame Arbeiten erleichtern. Versionskontrollsysteme haben außerdem stets eine Funktion, mithilfe der sie mehrere Commits zu einem gemeinsamen Ergebnis zusammenführen können (ein sogenannter Merge). Jeder kann also getrennt arbeiten, seine Arbeit commiten und am Ende kann alles ohne großen Aufwand zusammengeführt werden (sofern nicht an derselben Stelle gearbeitet wurde). Das spart viel Zeit und Nerven.

Welches Versionsverwaltungssystem sollte ich nutzen?

Meist begegnet man SVN, Git oder Mercurial.

Es gibt verschiedene Versionsverwaltungssysteme mit unterschiedlichen Zielen sowie Vor- und Nachteilen. Die bei der Softwareentwicklung heutzutage am meisten verbreiteten sind Subversion (kurz SVN), Git und Mercurial. Allen 3 gemein ist, dass die Daten auf einem Server gehostet werden, um so mehreren Nutzern Zugriff auf die Daten zu bieten. SVN gilt dabei als veraltet, da es sich noch um ein zentral verwaltetes Versionskontrollsystem handelt, und man Änderungen am Projekt direkt auf den Server merged. Git und Mercurial sind dezentrale Versionskontrollsysteme, die das getrennte Arbeiten und Verwalten von Projekten durch den Einsatz lokaler Arbeitskopien deutlich verbessern. So hat man auch offline Zugriff auf alle Daten und ist nicht durchwegs auf eine Internetverbindung angewiesen, um am Projekt zu arbeiten. Da die lokale Kopie nicht automatisch auf den Stand des serverseitigen Originals synchronisiert wird, muss man dies manuell erledigen. (Dazu später mehr.)

Funktional sind Git und Mercurial miteinander für die üblichen Projektzwecke durchaus vergleichbar, jedoch stand hinter Git (vor allem aus historischen Gründen) stets eine deutlich größere Community, sodass Git mit der Zeit immer mehr zum dominierenden Versionskontrollsystem aufgestiegen ist. Die starke Verbreitung, die vielen verfügbaren Werkzeuge und die Unterstützung auf vielen Plattformen zur Projektverwaltung machen die Entscheidung sehr leicht: Git ist das Versionsverwaltungssystem der Wahl.

Bild: Fotolia - 110738629

Andreas Link
Andreas Link
Anh Dung Pham
Anh Dung Pham
Cihat Gündüz
Cihat Gündüz
Andreas Link
Ekrem Sentürk
Eva Maria Stock
Eva-Marie Stock
Andreas Link
Giulia Maier
Inken Marei Kolthoff
Inken Marei Kolthoff
Janina Baumann
Janina Baumann
Janina Bokeloh
Janina Bokeloh
Jeanette Schmidt
Jeanette Schmidt
Jens Krug
Jens Krug
Kajorn Pathomkeerati
Kajorn Pathomkeerati
Karl Barth
Karl Barth
Kay Dollt
Kay Dollt
Murat Yilmaz
Murat Yilmaz
Thorsten Hack
Thorsten Hack
Thorsten Hack
Thorsten Hack
Inken Marei Kolthoff
Cynthia Murat
Inhaltsverzeichnis

Weitere Artikel

Layouts für Android – Ein Performance-Vergleich
Thorsten Hack
26.11.2022
6 Min

Layouts für Android – Ein Performance-Vergleich

Jeder der native Android-Apps entwickelt, kommt tagtäglich mit Layouts in Berührung.

Artikel lesen
Android-Apps mit MVVM in Kotlin effektiv programmieren
Karl Barth
26.11.2022
5 Min

Android-Apps mit MVVM in Kotlin effektiv programmieren

Apps schnell und effizient programmieren - wer will das nicht?

Artikel lesen
Schluss mit dem Visitenkartenchaos!
Eva-Maria Stock
26.11.2022
4 Min

Schluss mit dem Visitenkartenchaos!

Vielleicht ist euch schon ein neuer Eintrag auf unserer Referenzseite aufgefallen: Unsere Businesscardapp ist jetzt im App Store erhältlich.

Artikel lesen

Jetzt kostenloses Strategiegespräch sichern!

Die Beratungen sind grundsätzlich schnell ausgebucht, deshalb fülle jetzt in 2 Minuten das kurze Formular aus.

Jetzt Strategiegespräch sichern