Umgang mit ungültigen Hashes
In den vorherigen Schritten haben wir erfolgreich einen gültigen Commit-Hash mit git rev-parse
und git show
verwendet. Aber was passiert, wenn Sie einen ungültigen oder nicht existierenden Hash angeben? Git ist so konzipiert, dass es Ihnen Feedback gibt, wenn es das Objekt, nach dem Sie suchen, nicht finden kann.
Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine
befinden.
Versuchen wir, git show
mit einem Hash zu verwenden, der nicht existiert. Wir geben einfach eine zufällige Zeichenfolge ein, die wie ein Hash aussieht:
git show deadbeef
Sie sollten eine Fehlermeldung ähnlich der folgenden sehen:
fatal: bad object deadbeef
Diese Meldung sagt Ihnen, dass Git kein Objekt (in diesem Fall einen Commit) mit dem Hash deadbeef
finden konnte. Dies ist Gits Möglichkeit, Ihnen mitzuteilen, dass die von Ihnen angegebene Referenz in diesem Repository nicht gültig ist.
In ähnlicher Weise erhalten Sie einen Fehler, wenn Sie versuchen, git rev-parse
mit einem ungültigen Hash zu verwenden:
git rev-parse invalidhash
Die Ausgabe wird ähnlich sein:
fatal: ambiguous argument 'invalidhash': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Diese Fehlermeldung ist etwas detaillierter und deutet darauf hin, dass Git invalidhash
nicht als bekannte Revision oder Dateipfad interpretieren konnte.
Das Verständnis dieser Fehlermeldungen ist wichtig. Wenn Sie auf einen "bad object" oder "unknown revision" -Fehler stoßen, bedeutet dies normalerweise, dass der Commit-Hash, der Branch-Name oder das Tag, das Sie verwenden möchten, in der Historie Ihres aktuellen Repositorys nicht existiert. Überprüfen Sie den von Ihnen verwendeten Hash oder die Referenz noch einmal, um sicherzustellen, dass er/sie korrekt ist.
Dieser Schritt zeigt, dass Git streng ist, wenn es um die von Ihnen angegebenen Referenzen geht. Die Verwendung gültiger Hashes ist entscheidend, um die Historie Ihres Projekts genau zu durchsuchen und zu manipulieren.