Git Grundbefehle
Lerne die wichtigsten Git-Befehle kennen, die du täglich brauchst - von status über add bis commit.
Du hast dein erstes Repository erstellt und deinen ersten Commit gemacht. Jetzt ist es Zeit, die Git-Grundbefehle richtig zu verstehen. In diesem Kapitel lernst du die Befehle, die du taeglich benutzen wirst - und zwar gruendlich.
Die wichtigsten Befehle im Ueberblick
Hier ist dein Git-Spickzettel fuer den Alltag:
| Befehl | Was er tut |
|---|---|
git init | Neues Repository erstellen |
git status | Status des Projekts anzeigen |
git add | Dateien zum Staging hinzufuegen |
git commit | Aenderungen speichern |
git log | Commit-Historie anzeigen |
git diff | Aenderungen anzeigen |
git restore | Aenderungen rueckgaengig machen |
git rm | Dateien aus Git entfernen |
git mv | Dateien umbenennen/verschieben |
git status - Der wichtigste Befehl
git status ist dein bester Freund. Er zeigt dir jederzeit, was in deinem Projekt los ist.
git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: about.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: index.html
Untracked files:
(use "git add <file>..." to include in what will be committed)
kontakt.html
Die drei Kategorien im Status
Staged (gruen) → Bereit fuer den naechsten Commit
Modified (rot) → Geaendert, aber noch nicht staged
Untracked (rot) → Neue Datei, die Git noch nicht kennt
Kurzform des Status
Fuer eine kompaktere Ausgabe:
git status -s
A about.html
M index.html
?? kontakt.html
| Symbol | Bedeutung |
|---|---|
A | Neue Datei (staged) |
M | Modifizierte Datei |
?? | Untracked (nicht verfolgt) |
D | Geloeschte Datei |
R | Umbenannte Datei |
git add - Dateien zum Staging hinzufuegen
Einzelne Datei stagen
git add index.html
Mehrere Dateien stagen
git add index.html style.css script.js
Alle Dateien stagen
# Alle geaenderten und neuen Dateien
git add .
# Oder alternativ
git add -A
Nur bestimmte Dateitypen stagen
# Alle HTML-Dateien
git add *.html
# Alle Dateien in einem Ordner
git add css/
Teile einer Datei stagen (interaktiv)
Du kannst sogar einzelne Aenderungen innerhalb einer Datei auswaehlen:
git add -p index.html
Git fragt dich dann fuer jede Aenderung, ob du sie stagen moechtest. Das ist nuetzlich, wenn du in einer Datei mehrere unzusammenhaengende Aenderungen gemacht hast.
Staging rueckgaengig machen
# Eine Datei unstagen
git restore --staged index.html
# Alle Dateien unstagen
git restore --staged .
git commit - Aenderungen speichern
Commit mit Message
git commit -m "Navigation zur Startseite hinzugefuegt"
Commit mit ausfuehrlicher Message
Fuer laengere Beschreibungen oeffnet Git deinen Editor:
git commit
Im Editor schreibst du dann:
Navigation zur Startseite hinzugefuegt
- Hauptnavigation mit Links zu allen Seiten
- Responsives Hamburger-Menu fuer mobile Geraete
- Aktive Seite wird hervorgehoben
Add und Commit in einem Schritt
Fuer bereits getrackte Dateien (nicht fuer neue Dateien!):
git commit -am "Kleinen Tippfehler korrigiert"
Das -a-Flag staged automatisch alle geaenderten (aber nicht neuen!) Dateien.
Letzten Commit korrigieren
Tippfehler in der Commit-Message? Datei vergessen?
# Nur die Message aendern
git commit --amend -m "Neue, bessere Commit-Message"
# Eine vergessene Datei zum letzten Commit hinzufuegen
git add vergessene-datei.html
git commit --amend --no-edit
Wichtig: Verwende --amend nur fuer Commits, die du noch nicht gepusht hast!
git diff - Aenderungen anzeigen
Unstaged Aenderungen anzeigen
git diff
diff --git a/index.html b/index.html
index 1a2b3c4..5d6e7f8 100644
--- a/index.html
+++ b/index.html
@@ -10,6 +10,10 @@
<header>
<h1>Willkommen auf meiner Webseite</h1>
+ <nav>
+ <a href="index.html">Start</a>
+ <a href="about.html">Ueber mich</a>
+ </nav>
</header>
- Zeilen mit
+wurden hinzugefuegt (gruen) - Zeilen mit
-wurden entfernt (rot)
Staged Aenderungen anzeigen
git diff --staged
Unterschied zwischen zwei Commits
git diff abc1234 def5678
Zusammenfassung der Aenderungen
git diff --stat
index.html | 4 ++++
style.css | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
git restore - Aenderungen verwerfen
Unstaged Aenderungen verwerfen
# Eine Datei auf den letzten Commit zuruecksetzen
git restore index.html
# Alle Aenderungen verwerfen
git restore .
Vorsicht: Diese Aenderungen sind unwiederbringlich verloren!
Staged Aenderungen zurueck in Working Directory
git restore --staged index.html
Die Aenderungen sind dann wieder unstaged, aber noch vorhanden.
Datei aus einem bestimmten Commit wiederherstellen
git restore --source=abc1234 index.html
git rm - Dateien entfernen
Datei aus Git und Dateisystem loeschen
git rm alte-seite.html
git commit -m "Alte Seite entfernt"
Datei nur aus Git entfernen (behalten auf der Festplatte)
git rm --cached geheime-config.txt
git commit -m "Config aus Git-Tracking entfernt"
Das ist nuetzlich, wenn du eine Datei versehentlich committed hast, die nicht ins Repository gehoert.
git mv - Dateien umbenennen
git mv alte-datei.html neue-datei.html
git commit -m "Datei umbenannt"
Das ist aequivalent zu:
mv alte-datei.html neue-datei.html
git add neue-datei.html
git rm alte-datei.html
Praktisches Beispiel: Einen kompletten Workflow durchspielen
Lass uns einen realistischen Arbeitsablauf durchspielen:
# 1. Status pruefen - was ist der aktuelle Stand?
git status
# 2. Eine neue Datei erstellen
touch about.html
# 3. Status pruefen - Git zeigt die neue Datei als untracked
git status
# 4. Inhalt hinzufuegen (in deinem Editor)
# ... about.html mit HTML-Inhalt fuellen ...
# 5. Die Aenderungen anschauen
git diff
# 6. Datei stagen
git add about.html
# 7. Nochmal Status pruefen - Datei ist jetzt staged
git status
# 8. Commit erstellen
git commit -m "About-Seite erstellt mit persoenlicher Beschreibung"
# 9. Historie anschauen
git log --oneline
a3f4b2c About-Seite erstellt mit persoenlicher Beschreibung
8e1d9f0 Projekte-Sektion zur Startseite hinzugefuegt
5c2a1b3 Initiales Projekt: HTML-Grundstruktur und CSS-Styling
Haeufige Fehler und Loesungen
”Changes not staged for commit”
Du hast vergessen, git add auszufuehren:
# Loesung: Dateien stagen
git add .
git commit -m "Deine Message"
“nothing to commit, working tree clean”
Es gibt keine Aenderungen zum Committen. Entweder hast du alles schon committed, oder du hast keine Dateien geaendert.
”fatal: not a git repository”
Du bist nicht in einem Git-Repository. Initialisiere eins oder wechsle in den richtigen Ordner:
# Entweder
git init
# Oder zum richtigen Ordner navigieren
cd pfad/zum/projekt
Uebungen
- Erstelle ein Projekt mit drei HTML-Dateien und stage sie einzeln nacheinander
- Nutze
git diff, um die Aenderungen vor dem Commit anzuschauen - Erstelle drei separate Commits fuer drei logische Aenderungen
- Benenne eine Datei mit
git mvum und committe die Aenderung - Uebe
git restore, indem du eine Aenderung verwirfst
Was kommt als Naechstes?
Im naechsten Kapitel tauchen wir tiefer in die Staging Area ein und lernen, wie du Commits strategisch planst. Du wirst verstehen, warum die Staging Area so wichtig ist und wie du sie optimal nutzt.
Zusammenfassung
git statuszeigt dir jederzeit den Zustand deines Projektsgit addfuegt Dateien zur Staging Area hinzugit commit -m "Message"erstellt einen Schnappschussgit diffzeigt dir Aenderungen im Detailgit restoremacht Aenderungen rueckgaengiggit rmundgit mvverwalten Dateien im Repository- Nutze
git statusvor und nach jedem Befehl - so behaltst du den Ueberblick
Pro-Tipp: Gewoehne dir an, nach jedem Git-Befehl git status auszufuehren. So entwickelst du ein Gefuehl dafuer, was Git tut, und vermeidest Ueberraschungen. Mit der Zeit wirst du es automatisch machen.