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

Einführung

Git ist in zwei Schichten aufgeteilt. Plumbing-Befehle sind Low-Level-Bausteine, die auf der Objektdatenbank, Refs und dem Index operieren. Porcelain-Befehle sind nutzerfreundliche Wrapper, aus Plumbing aufgebaut. git commit ist Porcelain; git hash-object, git write-tree und git update-ref sind Plumbing.

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

Einführung

Garbage Collection (gc) hält Ihr Repository kompakt und schnell. Git führt sie automatisch aus, wenn bestimmte Schwellen überschritten sind. Sie können sie auch manuell aufrufen.

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

Einführung

Ein Shallow Clone lädt nur die jüngsten N Commits eines Branches herunter statt die vollständige Historie. Das Ergebnis ist deutlich kleiner und schneller zu fetchen, auf Kosten einer unvollständigen Historie.

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

Einführung

Sich an einem Git-Remote zu authentifizieren ist meist unsichtbar, bis es schiefgeht. Die zwei Hauptmechanismen sind SSH-Schlüssel und HTTPS-Credentials (Passwörter oder, heute üblicher, Personal Access Tokens).

SSH-Schlüssel

Einen modernen Schlüssel generieren:

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

Einführung

Git kann Daten über vier Protokollfamilien transportieren. Jede hat unterschiedliche Abwägungen in Bezug auf Performance, Authentifizierung und Firewall-Freundlichkeit.

Local / file

Klonen aus einem Verzeichnis verwendet lokale Datei-I/O. Zwei URL-Formen:

git clone /srv/git/widget.git
git clone file:///srv/git/widget.git

Die erste Form kann Hardlinks für Objekte verwenden, wenn auf demselben Dateisystem (sehr schnell, sehr platzsparend). Die file://-Form kopiert immer über das Smart-Protokoll.

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

Einführung

Alles, was Git über ein Repository weiß, lebt in .git/. Zu wissen, was jeder Eintrag ist, beseitigt das Geheimnis aus "Was ist gerade passiert?"-Diagnosen.

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

Einführung

Gits inhaltsadressiertes Modell dedupliziert identische Objekte, aber ähnliche-aber-nicht-identische Blobs (eine Datei und ihre spätere Bearbeitung) würden weiterhin volle Größe kosten. Pack-Dateien lösen das mit Delta-Kompression: Speichern eines Objekts als Basis plus eine Sequenz von "copy/insert"-Anweisungen, die ein anderes Objekt erzeugen.

Wie es funktioniert

Beim Packen vergleicht Git Kandidatenobjekte (üblicherweise Blobs ähnlicher Größe und Typs) und wählt eine Basis für jedes. Das Delta zeichnet auf:

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

Einführung

Git speichert Objekte in zwei physischen Formaten. Lose Objekte sind einzelne Dateien; gepackte Objekte leben in einer Pack-Datei mit einem Delta-komprimierten Body. Beide Formen beschreiben dieselben logischen Objekte, adressiert durch dieselben Hashes.

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

Einführung

Eine symbolische Ref ist eine Referenz, deren Wert ein anderer Ref-Name statt eines Objekt-Hashes ist. Das kanonische Beispiel ist HEAD, das üblicherweise ref: refs/heads/main enthält. Symbolische Refs erlauben Git, "den aktuellen Branch" als Daten statt als Zustand zu verfolgen.

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

Einführung

"Erreichbarkeit" ist die wichtigste Eigenschaft eines Git-Objekts. Ein Objekt ist erreichbar, wenn eine Ref über Eltern- oder Tree-Verknüpfungen zu ihm führt. Unerreichbare Objekte kommen für Garbage Collection in Frage.

Erreichbarkeitsregeln

Ausgehend von irgendeiner Ref: