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

Lets get started - Dev Blog
Eva-Maria Stock
26.11.2022
2 Min

Lets get started - Dev Blog

Heute ist der große Tag, unser neues Baby geht online. Im Dev Blog werdet ihr in Zukunft viele Themen aus unserem Arbeitsalltag lesen.

Artikel lesen
Was macht das Arbeiten bei Jamit Labs aus?
Janina Bokeloh
26.11.2022
4 Min

Was macht das Arbeiten bei Jamit Labs aus?

Um immer wieder einen Einblick in unsere tägliche Arbeitsweise zu geben, haben wir dieses Mal ein Interview mit unserem Mitarbeiter Dungi geführt. Darin erzählt er, was sein ganz persönlicher Eindruck von der Arbeit bei Jamit Labs ist.

Artikel lesen
Liebe zum Detail
Kay Dollt
26.11.2022
2 Min

Liebe zum Detail

Was sendet man seinen Kunden und Partnern als kleine Aufmerksamkeit zu Weihnachten?

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