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

Übersicht

git hash-object [-t <type>] [-w] [--stdin] [<file>...]

Beschreibung

Der git hash-object-Befehl berechnet den SHA-1 (oder SHA-256 in modernen Repos), den Git dem Inhalt einer Datei zuweisen würde. Mit -w schreibt er das Objekt auch in die Objektdatenbank und gibt den SHA zurück. Das ist der niedrigste Mechanismus hinter git add: dieser Porcelain-Befehl ruft im Wesentlichen hash-object -w auf und aktualisiert dann den Index.

Im täglichen Einsatz integriert sich git hash-object eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git hash-object --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.

Zu verstehen, wie git hash-object mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git hash-object hilft, alle drei zu vermeiden.

Häufige Optionen

OptionBeschreibung
-t <type>Objekttyp (Standard blob).
-wSchreibt das Objekt in die Datenbank.
--stdinLiest Inhalt von der Standardeingabe.
--stdin-pathsLiest Dateinamen von stdin.
--no-filtersÜberspringt Smudge/Clean-Filter.
--literallyValidiert den Inhaltstyp nicht.

Beispiele

git hash-object README.md
    # Den SHA ausgeben, den Git zuweisen würde

    echo "hello" | git hash-object --stdin
    # Beliebigen Inhalt hashen

    git hash-object -w newfile.txt
    # Den Dateiinhalt als Blob in die Objekt-DB einfügen

    find . -name '*.png' | git hash-object --stdin-paths
    # Hashes für viele Dateien stapelweise berechnen

Häufige Fehler

-w zu verwenden erzeugt einen dangling Blob, falls Sie ihn nicht von einem Tree referenzieren. git gc entfernt schließlich unerreichbare Objekte. Hashen durch Filter (CRLF-Normalisierung) ergibt andere SHAs als rohe Bytes — übergeben Sie --no-filters, um mit Roh-Hashes anderer Tools zu vergleichen.

Verwandte Befehle

git add, git cat-file, git update-index, git write-tree