Einführung
Versionskontrollsysteme, Quellcodeverwaltung, was Git ist, Installation, SSH-Schlüssel und Git-Repositories – alles im Überblick.

Dies ist der Einstiegspunkt des Learn-Git-Kurses. Am Ende dieser Einführung wirst du verstehen, was ein Versionskontrollsystem ist, warum Teams darauf angewiesen sind, wie sich Git von älteren Werkzeugen unterscheidet und wie du Git auf deinem Rechner zum Laufen bringst. Jeder Abschnitt unten verweist auf ein vollständiges Kapitel, in dem das Thema ausführlich erklärt wird.
Dies ist der Weg, den dieser Abschnitt abdeckt:
- Was ein Versionskontrollsystem (VCS) ist und die drei Familien von VCS.
- Wie Quellcodeverwaltung (SCM) Änderungen verfolgt und Konflikte auflöst.
- Wie du Versionskontrollsoftware für dein Team auswählst.
- Was Git ist und warum es zum Standard wurde.
- Wie du Git installierst – auf macOS, Windows und Linux.
- Was ein Git-Repository ist und wie es deine History speichert.
- Wie SSH-Schlüssel dir ermöglichen, sicher mit einem Remote zu kommunizieren.
Versionskontrollsystem
Ein Versionskontrollsystem (VCS) ist ein Werkzeug, das Änderungen an einer Menge von Dateien über die Zeit aufzeichnet, sodass du jede frühere Version abrufen, sehen kannst, wer was geändert hat, und parallel arbeiten kannst, ohne sich gegenseitig zu überschreiben. Es wird manchmal auch als Quellcodeverwaltung (SCM) oder Revisionskontrollsystem (RCS) bezeichnet.
Es gibt drei Familien von VCS, die sich darin unterscheiden, wo die History gespeichert wird:
- Lokale VCS bewahren jede Version in einer Datenbank auf einem einzigen Computer (zum Beispiel das alte
rcs-Werkzeug). Einfach, aber ein Festplattenausfall vernichtet alles, und echte Zusammenarbeit ist nicht möglich. - Zentralisierte VCS (CVCS) wie Subversion (SVN) oder CVS speichern die vollständige History auf einem zentralen Server. Entwickler checken eine Arbeitskopie aus, aber die History existiert nur auf dem Server. Ist der Server nicht erreichbar, kann niemand committen; geht er ohne Backup verloren, ist die Projekthistory weg.
- Verteilte VCS (DVCS) wie Git oder Mercurial geben jedem Entwickler eine vollständige Kopie des Repositorys, einschließlich seiner gesamten History. Du kannst committen, branchen und das Log anzeigen, während du vollständig offline bist, und jeder Klon kann die anderen wiederherstellen.
Git ist ein verteiltes VCS, was der Hauptgrund dafür ist, dass es schnell und ausfallsicher ist.
Quellcodeverwaltung
Quellcodeverwaltung (SCM) ist im Wesentlichen ein anderer Name für Versionskontrolle. Es ist die Praxis (und das Werkzeug), Änderungen an einem Quellcode-Repository zu verfolgen, damit du die History überprüfen, Revisionen vergleichen und Merge-Konflikte lösen kannst – die Situation, in der zwei Personen dieselben Zeilen ändern und das Werkzeug einen Menschen benötigt, um zu entscheiden, welche Änderung gewinnt.
SCM ermöglicht es jedem Entwickler, unabhängig auf einem separaten Branch zu arbeiten und die Arbeit später mit einem Merge zusammenzuführen. Neben der reinen History bietet gutes SCM Blame/Annotation, das Taggen von Releases und die Möglichkeit, eine fehlerhafte Änderung in Sekunden rückgängig zu machen.
Versionskontrollsoftware
Versionskontrollsoftware ist das konkrete Programm, das Versionskontrolle für dein Team umsetzt. Für einen einzelnen Entwickler ist es praktisch; für ein Team mit mehreren Entwicklern ist es eine Notwendigkeit, da es der einzige sichere Weg ist, die Arbeit aller zusammenzuführen.
Beliebte Optionen sind Git, Subversion (SVN), CVS, Mercurial und Monotone. Jedes Projekt wählt dasjenige, das zu seinem Workflow passt; Git ist heute bei weitem das am häufigsten verwendete. Die folgenden Kapitel vergleichen ihre Vor- und Nachteile im Detail.
Was ist Git
Git ist das verteilte Versionskontrollsystem, das in den meisten Teilen der Softwarewelt eingesetzt wird. Es verfolgt Änderungen an deinem Quellcode während der Entwicklung und verwaltet Projekte jeder Größe – von einem einzeiligen Skript bis hin zum Linux-Kernel.
Git zeichnet sich aus einigen Gründen aus:
- Günstige, schnelle lokale Branches — einen Branch zu erstellen ist nahezu augenblicklich, da er lediglich ein Zeiger auf einen Commit ist.
- Eine Staging-Area — du wählst genau aus, welche Änderungen in den nächsten Commit einfließen, indem du
git addverwendest, bevor dugit commitausführst. - Funktioniert offline — jede Operation außer der Synchronisation mit einem Remote läuft gegen deine lokale Kopie.
- Datenintegrität — jeder Commit wird durch einen SHA-1-Hash seines Inhalts identifiziert, sodass Korrumpierungen erkennbar sind.
Git installieren
Die Arbeit mit Git beginnt damit, es zu installieren (oder deine bestehende Kopie zu aktualisieren). Das Installationsprogramm unterscheidet sich je nach Betriebssystem:
- macOS — der Git für Mac-Installer, Homebrew (
brew install git) oder MacPorts. - Windows — das offizielle Git für Windows-Paket, das Git Bash enthält.
- Linux — der Paketmanager deiner Distribution, z. B.
sudo apt install gitunter Debian/Ubuntu.
Sobald es installiert ist, bestätige die Version im Terminal:
git --version
# git version 2.45.2Die genaue Versionsnummer, die du siehst, ist die aktuelle zum Zeitpunkt deiner Installation; jedes neuere 2.x-Release ist für diesen Kurs geeignet.
Git-Repository
Ein Git-Repository („Repo") ist der Speicher, der die Dateien deines Projekts zusammen mit der vollständigen History jeder Änderung enthält. Die History befindet sich in einem versteckten .git-Ordner im Stammverzeichnis des Projekts.
Du erstellst ein Repository auf eine von zwei Arten – starte ein neues mit git init oder kopiere ein vorhandenes Remote-Repository mit git clone:
# Turn the current folder into a new, empty repository
git init
# Initialized empty Git repository in /path/to/project/.git/
# Or download an existing project and its full history
git clone https://github.com/user/project.gitSSH-Schlüssel
Ein SSH-Schlüssel ist eine Zugangsberechtigung, die vom SSH-Protokoll (Secure Shell) verwendet wird. SSH ist ein Netzwerkprotokoll, das es dir ermöglicht, sich von einem Computer aus sicher über ein nicht vertrauenswürdiges Netzwerk bei einem anderen anzumelden.
In Git ermöglicht dir ein SSH-Schlüsselpaar (ein privater Schlüssel, den du geheim hältst, und ein öffentlicher Schlüssel, den du auf GitHub, GitLab usw. hochlädst), Push- und Pull-Operationen durchzuführen, ohne jedes Mal dein Passwort eingeben zu müssen. Das Kapitel zu SSH-Schlüsseln führt durch das Erstellen eines Schlüssels und das Hinzufügen zu deinem Konto.