Was ist „Versionskontrolle“?

Ein Versionskontrollsystem (VCS) verfolgt den Verlauf von Änderungen, wenn mehrere Personen gemeinsam an einem Projekt arbeiten. Moderne Versionskontrollsysteme erlauben parallele Änderungen in Zweigen (Branches) und bringen Mechanismen mit, die ein geordnetes und möglichst einfaches Zusammenführen (Mergen) der Änderungen/Beiträge ermöglichen. Während der Entwicklung können Änderungen mit der Gewissheit vorgenommen werden, dass jede Änderung nachvollziehbar und jede Version jederzeit wiederherstellbar ist. Git ist ein Beispiel für ein solches Versionskontrollsystem. Die Datenbank der Versionsverwaltung wird Repository genannt.

Exkurs: Warum Versionskontrolle?

Wenn Sie („Max“) jemals im Team an irgendetwas Digitalem zusammengearbeitet haben, dann wissen Sie, wie es geht:

Es beginnt ganz einfach: Sie haben Ihre Version (Dokument-Entwurf.doc) eines Dokuments und senden sie an einen Partner („Moritz“). Dieser nimmt einige Änderungen vor (Dokument-Entwurf-2.doc), sodass es jetzt zwei Versionen gibt, und sendet die Vorschläge an Sie zurück. Sie integrieren ihre Änderungen in Ihre Version, und jetzt gibt es eine neue, konsolidierte Version (→ Dokument-Entwurf-eingearbeitet).

Dann wird es schlimmer: Während Sie Ihre Version weiter ändern (→ Dokument-Entwurf-3.doc), nimmt Ihr Partner weitere Änderungen an seiner Version vor – und nennt diese auch Dokument-Entwurf-3.doc. Jetzt haben Sie drei Versionen:

  • Dokument-Entwurf-eingearbeitet: Die zusammengeführte Kopie, an der Sie beide gearbeitet haben,

  • Dokument-Entwurf-3.doc: Die Version, die Sie weiter geändert haben

  • Dokument-Entwurf-3.doc, die Ihr Partner geändert hat (gleicher Name, er weiss ja nicht dass Sie zwischenzeitlich weitergebarbeitet haben …).

Gut, man kann ja die Dateien besser benennen, also z. B. mit Autorennamen und Datum:

  • Dokument-Max-2020-04-01.doc

  • Dokument-Moritz-2020-04-01.doc

Sprung in die Zukunft:

Max war fleißig und hat einige Revision vorgenommen und hat nun folgende Dateien:

  • Dokument-Max-2020-04-01.doc

  • Dokument-Max-2020-04-09.doc

  • Dokument-Max-2020-04-15.doc

  • Dokument-Max-2020-04-15-2.doc

  • Dokument-Max-2020-04-21.doc

Jede dieser Änderungen hat er Moritz zur Kenntnisnahme geschickt.

Am 22. April bekommt er dann von Moritz eine überarbeitete Version Dokument-Moritz-2020-04-22.doc. Aber welche Version hat Moritz überarbeitet? Die vom 1., 9., 15. (1 oder 2?) oder vom 21.? Dazu kommt dann von Markus die Version Dokument-Markus-2020-04-17.doc, in welcher er im gesamten Dokument Rechtschreibfehler korrigiert hat.

Möchten Sie nun die Änderungen zusammenführen?

— (Nein!)


Achtung

Dieses Dokument ist in Entwicklung!

1.0.0-Release