Zum Inhalt springen
Git & GitHub Anfänger 25 min

Git Grundbefehle

Lerne die wichtigsten Git-Befehle kennen, die du täglich brauchst - von status über add bis commit.

Aktualisiert:

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:

BefehlWas er tut
git initNeues Repository erstellen
git statusStatus des Projekts anzeigen
git addDateien zum Staging hinzufuegen
git commitAenderungen speichern
git logCommit-Historie anzeigen
git diffAenderungen anzeigen
git restoreAenderungen rueckgaengig machen
git rmDateien aus Git entfernen
git mvDateien 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
SymbolBedeutung
ANeue Datei (staged)
MModifizierte Datei
??Untracked (nicht verfolgt)
DGeloeschte Datei
RUmbenannte 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

  1. Erstelle ein Projekt mit drei HTML-Dateien und stage sie einzeln nacheinander
  2. Nutze git diff, um die Aenderungen vor dem Commit anzuschauen
  3. Erstelle drei separate Commits fuer drei logische Aenderungen
  4. Benenne eine Datei mit git mv um und committe die Aenderung
  5. 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 status zeigt dir jederzeit den Zustand deines Projekts
  • git add fuegt Dateien zur Staging Area hinzu
  • git commit -m "Message" erstellt einen Schnappschuss
  • git diff zeigt dir Aenderungen im Detail
  • git restore macht Aenderungen rueckgaengig
  • git rm und git mv verwalten Dateien im Repository
  • Nutze git status vor 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.

Zurück zum Git & GitHub Kurs