Kurs im Selbststudium

Java Workshop: Einführung in eine Java-Programmierumgebung (IDE)

Angeboten von Dr. Thomas Staubitz, Ralf Teusner

Versionsverwaltung

Geschichte

Versionsverwaltungssysteme gibt es bereits seit einiger Zeit. Mit diesen lassen sich verschiedene Datei-Versionen auf leichte Art verwalten, wobei Änderungen nachvollzogen und zu einem beliebigen Zeitpunkt auch wieder rückgängig gemacht werden können. Früher hat man in der Regel mit zentralen Versionskontrollsystemen wie z.B. CVS oder SVN gearbeitet. Diese wurden in den letzten Jahren immer stärker von verteilten Systemen wie z.B. git abgelöst.

git

Git kann rein lokal im Einzelnutzer-Betrieb verwendet werden, oder man benutzt ein zentrales (Online- oder Remote-) Repository (auch Repo genannt), um die Dateien mit anderen zu teilen.
Repository nennt man den Bereich im Versionskontrollsystem, in dem die verschiedenen Versionen der Dateien vorgehalten werden.
Um den Speicherverbrauch klein zu halten, speichern moderne Systeme - wie z.B. git - in der Regel nur die Differenzen zwischen den Versionen, nicht aber die kompletten Dateien.

In verteilten Systemen, wie git eines ist, gibt es sowohl ein zentrales als auch ein lokales Repository. Wenn man alleine an nur einem Computer arbeitet, kann man theoretisch auf das zentrale Repo verzichten.

git Bereiche

Das lokale Repo auf dem Rechner des Anwenders besteht bei git aus drei Stufen: Working Directory, Staging und eigentliches Repository.

Das Working Directory (unstaged) enthält den aktuellen Zustand des Verzeichnisses, in dem ich arbeite. Sobald ich eine Änderung vornehme, ergibt sich eine Differenz zwischen dem Zustand der Datei im Working Directory und dem Zustand der Datei im Repository.

Im Staging-Bereich werden die Änderungen vorgemerkt, die in das Repository aufgenommen werden sollen.

Das eigentliche lokale Repository enthält alle aufgenommenen Dateien (s.o.).

git Bereiche

git Online-Repositories

Ein Online-Repository kann man entweder - beispielsweise mit Hilfe von GitLab - auf einem eigenen Server selbst aufsetzen, oder man nutzt einen der Online-Dienste wie GitHub (https://github.com/) oder BitBucket (https://bitbucket.org), die in der Regel für nicht-kommerzielle Projekte kostenfreie Accounts mit limitierten Ressourcen zur Verfügung stellen.

git Weiterführende Links

Alles über git: https://git-scm.com/

SourceTree: https://www.sourcetreeapp.com/

Weitere git GUIs: https://git-scm.com/downloads/guis

Es gibt ein schönes Spiel, um Branching in git-Repositories zu lernen. Dies ist sehr komplex, gegen Ende anspruchsvoll und verschlingt Zeit, aber wir wollen es euch nicht vorenthalten: http://learngitbranching.js.org/ ;)
Gerade die ersten Übungen lohnen sich, um ein grundlegendes Verständnis für die Funktionsweise von git zu erhalten.