Skip to content

Git – Basics

Kein vollständiger Git-Kurs, sondern die Befehle, die im Alltag mit Claude Code am häufigsten gebraucht werden — v. a. um selbst nachzuvollziehen, was gerade geändert wurde, bevor man es committet.

Status & Unterschiede ansehen

bash
git status            # welche Dateien geändert/neu/gelöscht sind
git diff               # Änderungen an bereits getrackten, noch nicht gestagten Dateien
git diff --staged      # Änderungen, die bereits `git add` hatten (was der nächste Commit enthält)
git diff <datei>       # nur für eine bestimmte Datei
git diff HEAD~1         # Unterschied zum vorherigen Commit

git diff zeigt Zeilen-Änderungen (- entfernt, + hinzugefügt), kein komplettes Vorher/Nachher der Datei — bei größeren Umbauten lieber die Datei direkt ansehen statt nur den Diff zu lesen.

Historie ansehen

bash
git log                          # volle Historie, neuester Commit zuerst
git log --oneline                # eine Zeile pro Commit, kompakt
git log --oneline -10             # nur die letzten 10
git log -- <datei>                # nur Commits, die diese Datei berühren
git log --oneline --graph --all   # Branch-Struktur visualisieren

Änderungen stagen & committen

bash
git add <datei>          # eine bestimmte Datei zum nächsten Commit vormerken
git add .                 # alle geänderten/neuen Dateien im aktuellen Ordner
git add -p                # interaktiv, Hunk für Hunk auswählen (bei gemischten Änderungen)
git commit -m "..."       # committen mit Nachricht
git commit --amend        # letzten Commit nachträglich ändern (nur wenn noch nicht gepusht!)

Commit-Message-Konvention im Playbook (aus dem /playbook-learnings- Command): learn(<datei>): <einzeiler>, z. B. learn(joomla-build): copy-file.js Binärdatei-Bug.

Branches (Basics)

bash
git branch                      # lokale Branches auflisten
git branch -a                    # inkl. Remote-Branches
git checkout -b feature/x        # neuen Branch erstellen + wechseln
git checkout main                # zurück zu main
git branch -d feature/x          # lokalen Branch löschen (nur wenn gemergt)

Remote

bash
git push                          # aktuellen Branch pushen (Upstream muss gesetzt sein)
git push -u origin <branch>       # erstes Mal pushen + Upstream setzen
git pull                          # Remote-Änderungen holen + mergen
git fetch                         # nur holen, noch nicht mergen (zum Vorab-Ansehen)

Rückgängig machen (vorsichtig)

bash
git restore <datei>               # ungestagte Änderungen an einer Datei verwerfen
git restore --staged <datei>      # nur aus der Staging-Area nehmen, Änderung bleibt im Working Dir
git reset --soft HEAD~1           # letzten Commit rückgängig, Änderungen bleiben gestaged
git revert <commit>               # Commit durch einen neuen Gegen-Commit rückgängig machen (sicher bei bereits gepushtem Code)

git reset --hard bewusst nicht in dieser Liste — löscht Änderungen unwiderruflich. Nur nutzen, wenn wirklich sicher, dass nichts Wichtiges verloren geht.

Bezug zu unserem Playbook

git checkout -- <pfad> ist der Fix für das npm run copy-Re-Minify- Problem aus learnings/joomla-build.md — committete Vendor-Datei nach jedem Build zurücksetzen, statt den Churn zu committen.