Von Gast (nicht überprüft) , 29 April 2026

Vier Objekttypen

Git speichert alles als content-addressable Objekte unter .git/objects. Es gibt vier Typen: blob (Dateiinhalte), tree (Verzeichniseintrage von Blobs und Subtrees), commit (Snapshot-Zeiger mit Autor, Committer, Message und Eltern) und tag (annotierter Tag).

Von Gast (nicht überprüft) , 29 April 2026

Das Problem, das Worktrees losen

Sie sind mitten in einem Feature, als ein dringender Hotfix-Request eintrifft. Stash oder Kontextwechsel sind riskant und langsam. Worktrees ermoglichen das Auschecken zusatzlicher Branches in separate Verzeichnisse, alle teilen eine zugrunde liegende Objektdatenbank.

Von Gast (nicht überprüft) , 29 April 2026

Der Fall fur SSH-Signierung

GPG ist machtig, aber operativ schmerzhaft. Seit Git 2.34 konnen Sie Commits und Tags mit den SSH-Schlusseln signieren, die Sie bereits zum Pushen verwenden.

Von Gast (nicht überprüft) , 29 April 2026

Warum signieren

Ein signierter Commit bezeugt kryptographisch "dieser Commit wurde vom Inhaber dieses Schlussels verfasst, unverandert seit der Signatur".

Von Gast (nicht überprüft) , 29 April 2026

Was gitattributes tut

.gitattributes wendet Pfad-Einstellungen an: Zeilenumbruche, Diff- und Merge-Treiber, Export-Filter, Kodierungsdeklarationen und Merge-Verhalten.

Zeilenumbruche

# .gitattributes
* text=auto
*.sh text eol=lf
*.bat text eol=crlf
*.png binary

Nach dem Hinzufugen git add --renormalize . ausfuhren.

core.autocrlf vs gitattributes

core.autocrlf ist Pro-Entwickler-Fallback. Gitattributes ist autoritativ und geteilt.

Von Gast (nicht überprüft) , 29 April 2026

Warum benutzerdefinierte Diffs

Git's Standard-Diff ist Zeile fur Zeile auf Text. Fur binare Formate (PDF, DOCX, Bilder) und strukturierten Text, bei dem Zeilen-Diffs nicht hilfreich sind, produzieren benutzerdefinierte Diff-Treiber etwas, das Menschen lesen konnen.

Von Gast (nicht überprüft) , 29 April 2026

Strategien vs Treiber

Eine Merge-Strategie entscheidet, wie Git zwei Historien kombiniert — ort (Standard ab Git 2.34), recursive, resolve, octopus und ours. Ein Merge-Treiber ist datei-spezifische Logik, die lauft, wenn beide Seiten dieselbe Datei geandert haben.

Von Gast (nicht überprüft) , 29 April 2026

Nach den Tatsachen

Wo Commit-Zeit-Hooks Commits formen, reagieren die Hooks auf dieser Seite auf sie. post-commit lauft lokal nach jedem Commit, pre-push lauft vor Datentransfer zum Remote, und post-receive lauft auf dem Server nachdem ein Push gelandet ist.

Von Gast (nicht überprüft) , 29 April 2026

Client-seitige Hooks

Hooks sind ausfuhrbare Skripte in .git/hooks/. Git ruft sie zu wohldefinierten Zeitpunkten auf. Die drei Commit-Zeit-Hooks ermoglichen die Durchsetzung von Richtlinien, bevor ein Commit finalisiert wird.

Von Gast (nicht überprüft) , 29 April 2026

Was rerere tut

Rerere — "reuse recorded resolution" — beobachtet das Losen eines Merge-Konflikts, zeichnet die Auflosung auf und spielt sie das nachste Mal ab, wenn derselbe Konflikt erscheint. Unschatzbar fur lange laufende Branches, die wiederholt rebasen oder mergen.

Aktivieren

git config --global rerere.enabled true
git config --global rerere.autoupdate true

Wie es funktioniert

Beim Konflikt speichert Git einen Hash des Konfliktkontexts unter .git/rr-cache/.