Zuletzt aktualisiert am 9. Dezember 2025 von Lars
Inhaltsverzeichnis
Was ist Git?
Git ist ein Versionskontrollsystem, das von Entwicklern verwendet wird, um den Quellcode von Softwareprojekten zu verwalten. Es ermöglicht mehreren Personen, an demselben Projekt zu arbeiten, ohne sich gegenseitig zu stören.
Git ist eine Sammlung von Tools für die Kommandozeile, mit denen Änderungen in Dateien überwacht und verfolgt werden. Obwohl es oft für Quellcode benutzt wird, kannst du damit eigentlich alle möglichen Dateien im Blick behalten, egal ob Texte oder sogar Bilder.
Dank Git kannst du ältere Versionen deines Projekts wieder zum Leben erwecken, sie unter die Lupe nehmen, vergleichen, zusammenführen und noch viel mehr.
Das Besondere an Git ist, dass es dezentralisiert ist. Das heisst, es braucht keinen grossen, zentralen Server, um deine alten Dateiversionen zu speichern. Es macht alles direkt bei dir lokal und speichert die Informationen in einem Ordner auf deiner Festplatte, der Repository genannt wird.
In diesem Artikel verwende ich meine eigene Adresse. Du musst diese bei dir entsprechend anpassen. Also statt zum Beispiel "[email protected]:LarsSchl/first-test-rep.git" muss du die Adresse deines Remote Repositorys verwenden.
So installierst du Git
Um loszulegen, muss die Software erst einmal auf deinem Rechner installiert werden. Git ist für alle gängigen Betriebssysteme verfügbar:
Windows
Verwende hierfür Git für Windows. Git für Windows bringt sogar eine grafische Oberfläche mit.
Linux
Installiere Git über deinen Paketmanager. Unter Ubuntu zum Beispiel mit sudo apt-get install git.
Mac OS X
Hier empfiehlt es sich, zunächst den macOS Paketmanager homebrew zu installieren und dann git selber mit brew install git zu installieren.
Git konfigurieren
Im folgenden geht es hier unter Linux weiter.
Git wird über die Kommandozeile gesteuert. Bevor wir mit der eigentlichen Arbeit loslegen, müssen wir ein paar Dinge konfigurieren.
Benutzername und E-Mail konfigurieren
git config --global user.name "Lars"
git config --global user.email [email protected]Jede Aktion, die jetzt via Git auf Dateien gemacht wird, wird mit dem Namen und der E-Mail-Adresse geloggt.
Konfiguration anzeigen
Mit diesem Befehl kannst du deine Konfiguration anzeigen.
git config --listDu siehst die globale Konfiguration ausserdem in der Datei ~/.gitconfig . Die lokale in der Datei .git/config .
Git Repository erstellen
Ein Git-Repository ist ein Speicherort, in dem du alle Dateien und Informationen für ein bestimmtes Projekt oder eine Softwareanwendung verwaltest. Es ermöglicht dir, Änderungen zu verfolgen, verschiedene Versionen zu speichern und die Zusammenarbeit mehrerer Personen an einem Projekt zu koordinieren.
So erstelle ich mein erstes Repository.
Ich habe mir in einem Unterordner auf meinem Laufwerk einen Ordner angelegt, in dem eine Beispiel-HTML- und eine Beispiel-CSS-Datei abgelegt ist.

Um daraus nun ein Repository zu machen, muss ich von der Kommandozeile in den richtigen Ordner wechseln und git init aufrufen.
lars@lars-Surface-Go-2:~$ cd git-lernen/
lars@lars-Surface-Go-2:~/git-lernen$ git init
Hinweis: Als Name für den initialen Branch wurde 'master' benutzt. Dieser
Hinweis: Standard-Branchname kann sich ändern. Um den Namen des initialen Branches
Hinweis: zu konfigurieren, der in allen neuen Repositories verwendet werden soll und
Hinweis: um diese Warnung zu unterdrücken, führen Sie aus:
Hinweis:
Hinweis: git config --global init.defaultBranch
Hinweis:
Hinweis: Häufig gewählte Namen statt 'master' sind 'main', 'trunk' und
Hinweis: 'development'. Der gerade erstellte Branch kann mit diesem Befehl
Hinweis: umbenannt werden:
Hinweis:
Hinweis: git branch -m
Leeres Git-Repository in /home/lars/git-lernen/.git/ initialisiertDateien dem Git-Repository hinzufügen
Mit folgendem Befehl kannst du alle Dateien im Ordner dem Repository hinzufügen
git add -AEinzelne Dateien kannst du zum Beispiel mit
git add <dateiname> hinzufügen.
Status des Repositorys überprüfen
Mit
git status kann man den Status überprüfen.
Das sieht jetzt bei mir so aus:
lars@lars-Surface-Go-2:~/git-lernen$ git status
Auf Branch master
Noch keine Commits
Zum Commit vorgemerkte Änderungen:
(benutzen Sie "git rm --cached …" zum Entfernen aus der Staging-Area)
neue Datei: index.html
neue Datei: p.cssUnsere Dateien befinden sich im Staging-Bereich. Die Statusmeldung informiert uns zudem über die Veränderungen, die in den Dateien im Staging-Bereich vorgenommen wurden - in diesem Fall wurden zwei neue Dateien hinzugefügt.
Commit erstellen
Ein Commit in Git repräsentiert einen Punkt in der Versionsgeschichte eines Projekts, bei dem Änderungen an Dateien festgehalten und kommentiert werden. Dies ermöglicht eine geordnete Verfolgung der Entwicklung und die Rückkehr zu bestimmten Projektzuständen.
So erstellst du deinen ersten commit.
lars@lars-Surface-Go-2:~/git-lernen$ git commit -m "Commit 1"
[master (Root-Commit) dd6cfc8] Commit 1
2 files changed, 31 insertions(+)
create mode 100644 index.html
create mode 100644 p.cssDen Verlauf der Commits kann man sich so anschauen.
git logBranches
In GIT sind Branches vergleichbar mit individuellen Entwicklungspfaden innerhalb eines Projekts. Sie ermöglichen es dir, an der Software zu arbeiten, ohne die Hauptversion, den 'main-Branch', zu beeinflussen.
Wenn du an einem neuen Feature oder einer Fehlerbehebung arbeitest, erstellst du einen eigenen Branch. Dieser dient als dein persönlicher Arbeitsbereich, in dem du Änderungen vornehmen kannst, ohne das Hauptprojekt zu stören. Sobald du mit deiner Arbeit zufrieden bist, kannst du deinen Branch mit dem Hauptprojekt zusammenführen, um deine Änderungen in das Gesamtprojekt einfliessen zu lassen. So ermöglicht GIT eine flexible und gleichzeitig strukturierte Entwicklung, bei der viele Personen gleichzeitig an verschiedenen Aspekten eines Projekts arbeiten können.
Branch erstellen
git branch function01In den Branche wechseln
git checkout function1Branches zusammenführen
Du arbeitest jetzt an deinem Branche. Beispielsweise fügst du die Seite site.html hinzu.
git add site.html
git commit -m "Function is finished"Zurück in den Hauptzweig wechseln
git checkout Eigentliches zusammenführen mit merge:
git merge function1Suchen in Git
Im Quellcode suchen – git grep
# Einfaches Stichwort in allen Dateien des aktuellen Branches
git grep "Suchbegriff"
# Nur in bestimmten Dateitypen (z. B. *.py)
git grep -- "*.py" "Suchbegriff"
# Groß-/Kleinschreibung ignorieren
git grep -i "suchbegriff"
# Mit Zeilennummern
git grep -n "Suchbegriff"Remote-Repository auf Github
Was ist Github?
Github kann man sich vereinfacht als soziales Netzwerk für Programmierer und deren Software vorstellen. Man kann dort Programme oder Programmteile veröffentlichen, die andere nutzen können, oder von anderen veröffentlichte Programmteile in der eigenen Software nutzen.
Sehr gut erklärt ist das im Video Was ist GitHub? Einfach erklärt!
Ausgangslage
Aktuell existiert unser Commit ausschliesslich lokal. Git wird aber im Regelfall dazu benutzt, unsere Arbeit mit anderen Entwicklern zu teilen und sie auf einem Server oder einem Repository-Hosting-Dienst wie Github bereitzustellen.
Um die nächsten Schritte mitzumachen, kannst du dir ein kostenloses Konto bei GitHub erstellen und dort ein Repository erstellen.

Änderung auf das Remote-Repository übertragen
Falls dein Repository privat ist, musst du dich erst einmal authentifizieren. Das geht nicht mehr über Benutzername / Passwort, sondern zum Beispiel via SSH.
Ein SSH-Schlüssel ist eine sichere Methode, um auf entfernte Server zuzugreifen, ohne ein Passwort verwenden zu müssen. Bei SSH gibt es zwei wei Schlüssel: einen öffentlichen und einen privaten Schlüssel. Der öffentliche Schlüssel wird auf dem Server gespeichert, zu dem du dich verbinden möchtest, während du den privaten Schlüssel auf deinem eigenen Computer aufbewahrst. Mit diesem Schlüsselpaar kannst du eine verschlüsselte Verbindung herstellen, ohne dein Passwort preiszugeben. SSH-Schlüssel sind sicherer als Passwörter und spielen eine wichtige Rolle in der sicheren Serverkommunikation.
SSH-Schlüssel generieren (Linux)
Das Video wird von YouTube eingebettet und erst beim Klick auf den Play-Button geladen. Es gelten die Datenschutzerklärungen von Google.
Hier die Schritte, um einen SSH-Schlüssel zu generieren:
- Öffne ein Terminal: Drücke
Ctrl + Alt + T, um ein Terminal-Fenster zu öffnen. Du wirst die Befehlszeile verwenden, um den SSH-Schlüssel zu erstellen. - Gib den Befehl ein, um einen SSH-Schlüssel zu generieren: Du kannst deinen eigenen Kommentar hinzufügen, um den Schlüssel zu identifizieren. Zum Beispiel:
ssh-keygen -t ed25519 -C [email protected]Dieser Befehl erstellt einen SSH-Schlüssel vom Typ RSA mit einer Schlüssellänge von 4096 Bit und der E-Mail-Adresse als Kommentar. Verwende hier die E-Mail-Adresse, die du bei der Anmeldung bei Github verwendet hast. - Du wirst aufgefordert, den Speicherort für den SSH-Schlüssel anzugeben. Du kannst die Standardeinstellungen verwenden, indem du einfach "Enter" drückst, um den Schlüssel im Standardverzeichnis (
~/.ssh) zu speichern. - Als Nächstes wirst du aufgefordert, ein Passwort für den SSH-Schlüssel festzulegen. Es ist eine optionale Sicherheitsmassnahme. Wenn du ein Passwort festlegen möchtest, gib es ein und bestätige es. Andernfalls kannst du das Feld leer lassen und einfach "Enter" drücken.
- Der SSH-Schlüssel wird jetzt generiert. Du solltest eine Ausgabe sehen, die den Pfad zum erstellten Schlüssel anzeigt.
lars@lars-Surface-Go-2:~/.ssh$ ssh-keygen -t ed25519 -C [email protected]
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/lars/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lars/.ssh/id_ed25519
Your public key has been saved in /home/lars/.ssh/id_ed25519.pub- Stelle als nächstes sicher, dass der SSH-Agent auch gestartet ist.
eval "$(ssh-agent -s)"- Anschliessend müssen wir noch die Konfigurationsdatei von SSH anpassen. Sie befindet sich unter
~/.ssh/config
Host github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519Damit erlauben wir dem SSH Agent, für den Host github.com den Private Key zu verwenden.
- Als Nächstes fügst du den gerade erstellen SSH-Key noch dauerhaft dem System hinzu.
lars@lars-Surface-Go-2:~/.ssh$ ssh-add id_ed25519Das war's! Du hast erfolgreich einen SSH-Schlüssel auf deinem Linux Mint-System erstellt. Du kannst den öffentlichen Schlüssel (normalerweise mit der Dateiendung ".pub") jetzt bei Github ablegen, um dich in Zukunft darauf anmelden zu können. Stelle sicher, dass der private Schlüssel gut geschützt ist, da er Zugriff auf die Remote-Server gewährt.
Public SSH-Key bei Github hinterlegen
Die Einstellungen findest du, wenn du auf dein Pofilicon klickst und auf "Settings".

Hier gibst du einfach den Inhalt der Datei des öffentlichen Schlüssels, also der mit der Endung .pub, ein.
Änderung übertragen
Du brauchst zunächst die richtige URL für dein Remote-Repository. Du benötigst die SSH-Variante und nicht die HTTPS.
Diese findest du, wenn du via Browser auf dein Remote-Repository gehst. Dort auf "Code" klickst, den Reiter "SSH" anwählst und von dort die SSH-Adresse kopierst.

Verbinde dich jetzt von deinem lokalen Rechner aus mit deinem Remote-Repository. Beispiel
lars@lars-Surface-Go-2:~/git-lernen$ git remote add origin [email protected]:LarsSchl/first-test-rep.gitWichtig: Du musst das Kommando aus dem Verzeichnis deines lokalen git absetzen, da du sonst die Meldung erhältst "fatal: Kein Git-Repository (oder irgendeines der Elternverzeichnisse): .git"
Jetzt kannst du die Änderungen auf den Remote-Server übertragen.
git push origin mainÄnderungen vom Remote-Server abrufen
Verwende git pull, wenn du die Änderungen, die auf dem Remote-Server existieren, in deinen lokalen Branch integrieren möchtest, um deine Arbeit zu aktualisieren.
git pull origin maingit pull ist eigentlich eine Kombination aus zwei Git-Befehlen: git fetch gefolgt von git merge. Wenn du git pull origin main ausführst, passieren folgende Schritte:
- Git Fetch: Zuerst holt
git fetchalle Änderungen vom Remote-Server (in diesem Fall vonorigin) für den angegebenen Branch (main), aber es ändert nicht deine lokalen Arbeitsdateien oder deinen aktuellen Branch. Es holt die Daten und aktualisiert deine Remote-Tracking-Branches (origin/main). - Git Merge: Anschließend führt
git mergeeinen Merge des Remote-Branches (origin/main) in deinen aktuellen Branch aus. Wenn du auf demmain-Branch bist undgit pull origin mainausführst, wird Git versuchen, Änderungen vonorigin/mainin deinen lokalenmain-Branch zu integrieren.
Git Merge
git merge wird verwendet, um die Änderungen von einem Branch in einen anderen zu integrieren. Zum Beispiel, wenn du an einem Feature in einem Branch namens feature-branch gearbeitet hast und diese Änderungen in den main-Branch integrieren möchtest, würdest du zuerst zu main wechseln (git checkout main) und dann git merge feature-branch ausführen.
Du würdest git merge verwenden, wenn du bereit bist, die Entwicklungszweige (z.B. Feature-Branches) in deinen Hauptentwicklungszweig (z.B. main) zu integrieren, oder wenn du Änderungen aus einem anderen lokalen Branch in deinen aktuellen Branch einbringen möchtest.
Repository clonen
Um ein Repostiory zu clonen, kann man von lokal diesen Befehl ausführen.
git clone [email protected]:LarsSchl/first-test-rep.gitCommits überprüfen - git log
So gibst du die Liste der Commits aus.
lars@lars-Surface-Go-2:~/git-lernen$ git log
commit 23fea5bf352a024e1f499de33b1cb3fc51d6973f (HEAD -> main)
Author: Lars <[email protected]>
Date: Sun Jan 14 15:55:07 2024 +0100
function finished
commit 6b70619c798e55cdd3e70dfc519e13a5db5fa732 (function01)
Author: Lars <[email protected]>
Date: Sun Jan 14 15:48:11 2024 +0100
Function is finished
commit e03f709fcf21090f55f61337b8336e31c61e4b06 (origin/main)
Author: LarsSchl <[email protected]>
Date: Sun Jan 14 12:24:01 2024 +0100
Create README.md
commit dd6cfc8bd29f84f1b1e50a2116301db9dae50072
Author: Lars <[email protected]>
Date: Wed Nov 22 18:33:20 2023 +0100
Commit 1
Für jeden Commit ist eine ID vergeben.
Details zu der ID siehst du mit dem Befehl:
lars@lars-Surface-Go-2:~/git-lernen$ git show e03f709
commit e03f709fcf21090f55f61337b8336e31c61e4b06 (origin/main)
Author: LarsSchl <[email protected]>
Date: Sun Jan 14 12:24:01 2024 +0100
Create README.md
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..18802c1
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@Es reicht, wenn du die ersten Stellen der ID angibst, damit Git den richtigen findet.
Eine Datei rückgängig machen
lars@lars-Surface-Go-2:~/git-lernen$ git checkout 6b70619c798e55cd site.html
1 Pfad von 6b46b2f aktualisiertEinen ganzen Commit rückgängig machen
Den Commit mit der ID <ID> rückgängig machen:
git revert <ID>Den letzten Commit rückgängig machen
git revert HEADBegriffe
- Add: Mit
git addwerden neue oder geänderte Dateien zur Staging Area hinzugefügt, um sie für das nächste Commit vorzubereiten. - Branch: Ein Branch in GIT repräsentiert eine unabhängige Entwicklungslinie innerhalb des Projekts, die es ermöglicht, an unterschiedlichen Features oder Korrekturen parallel zur Hauptlinie zu arbeiten.
- Clone: Der Befehl
git cloneerstellt eine Kopie eines bestehenden Git-Repositories, typischerweise als erster Schritt, um an einem Projekt mitzuarbeiten. - Commit: Ein Commit ist eine Aufzeichnung von Änderungen im Repository und bildet eine Momentaufnahme des aktuellen Zustands der Arbeitskopie.
- Fetch: Der Befehl
git fetchlädt Informationen von einem entfernten Repository herunter, ohne diese automatisch mit dem lokalen Repository zu verschmelzen. - Merge: Der Befehl
git mergewird verwendet, um Änderungen aus verschiedenen Branches in einen einzigen Branch zu integrieren. Er ist entscheidend für die Zusammenführung von Entwicklungsarbeiten. - Pull:
git pullkombiniert die Befehlefetchundmerge. Es holt Änderungen aus einem entfernten Repository und integriert sie in das lokale Repository. - Push: Mit
git pushwerden lokale Änderungen an ein entferntes Repository gesendet. Dieser Vorgang umfasst das Hochladen von Commits auf einen Server. - Remote: Der Begriff "remote" bezieht sich auf ein entferntes Repository. Mit Befehlen wie
git remote addkann man ein entferntes Repository bekannt machen und mit ihm interagieren. - Repository (lokal/remote): Ein Repository ist eine Sammlung aller Dateien eines Projekts und deren Versionsgeschichte. Ein lokales Repository befindet sich auf deinem Computer, während ein entferntes Repository auf einem Server liegt.
- Staging Area: Ein Bereich, in dem Änderungen vor einem Commit vorbereitet und überprüft werden.
- Stash: Mit
git stashkönnen temporäre Änderungen gespeichert werden, ohne einen Commit durchzuführen, um später darauf zurückzugreifen. - Working Copy: Bezieht sich auf die lokale Kopie deiner Dateien aus dem Repository, an denen du gerade arbeitest.
Troubleshooting
SSH
SSH-Schlüssel verwalten
Hier ein paar Befehle zum Troubleshooting, falls es mit dem SSH-Schlüssel nicht klappt.
SSH-Schlüssel anzeigen
ssh-add -lSSH-Schlüssel löschen
ssh-add -dGit
Meldung: "Aktualisierungen wurden zurückgewiesen, weil die Spitze Ihres aktuellen..."
git pull --rebase origin masterDanach sollte...
git push -u origin master...wieder funktionieren.
Branch löschen
git branch -d <Name des Branch>Dateien und Verzeichnisse ignorieren
Falls bestimmte Dateien von Git ausgenommen werden sollen, dann kannst du eine Datei namens .gitignore erstellen und darin alle zu ignorierenden Dateien und Verzeichnisse einbinden.
Quellen / Weitere Referenzen
- Die grösste Inspiration für diesen Artikel war: Git lernen in 30 Minuten
- https://docs.github.com/de/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
- https://gist.github.com/malefs/bb726374d5ce7e1f387e0e9db20160ab
- Video Setting Up SSH Keys for GitHub
Zeit gespart? Dann unterstütze doch it-zeugs.de
Wenn dieser Tipp dir geholfen hat, Zeit zu sparen, überlege bitte, eine kleine Spende zu hinterlassen. Dein Beitrag hilft mir, weiterhin wertvolle Inhalte zu erstellen. Du kannst unter diesem Linke spenden: Spende it-zeugs.de
Falld du nicht spenden willst oder kannst, dann wäre es toll, wenn du deinen nächsten Amazon Einkauf mit diesem Link beginnen würdest: Amazon Link. Für dich wird es nicht teurer, ich bekomme aber einen kleinen Beitrag.
Vielen herzlichen Dank ❤️

Hallo, hier schreibt Lars. Dipl-Ing. Ingenieurinformatik (FH). Seit Jahrzehnten in der IT tätig. Geprüfter (und begeisterter) Webmaster. Ebenso begeisterter Windows-, Apple-, und Office-User. Ich schreibe über alle möglichen Themen rund um IT. Mehr über mich erfährst du hier: Über mich. Danke für deinen Besuch!
