Was ist die Auflösung von Git's Commit-Datum oder Autor-Datum Zeitstempel?

8

Von dem, was ich sehen kann, sind Git-Commit-Daten und Autorendaten nur auf eine Sekunde genau. Ich frage mich, ob das so genau ist wie sie erhalten oder kann ich den Zeitstempel in Millisekunden oder sogar Mikrosekunden bekommen.

Dieser Befehl gibt den UNIX-Zeitstempel mit dem Commit-Hash des ersten Commits zurück:

%Vor%

Ergebnis: 1421437899

Was ist die Genauigkeit des Commit-Datums oder des Author-Date-Timestamps von GIT?

    
Jack 30.01.2015, 13:32
quelle

2 Antworten

9

Die Auflösung von Git commit / author dates ist 1 Sekunde, was, wie von Alexey Ten und Edward Thomson , ist auch die Auflösung von Unix-Zeitstempeln .

Ein interessantes Experiment, das Sie durchführen können, ist

  • Erstellen Sie ein Commit und
  • Ändere es sehr schnell, ohne etwas zu ändern (nicht einmal die Commit-Nachricht).

Wie Sie vielleicht wissen, erstellt das Ändern eines Commits tatsächlich ein neues Commit . Normalerweise hätte das neue Commit einen anderen Zeitstempel und daher eine andere Commit-ID als das erste Commit. Sie können jedoch ein Skript schreiben, das das Commit erstellt und es hoffentlich innerhalb derselben Systemuhr-Sekunde korrigiert, wodurch ein Commit mit dem gleichen Hash wie beim ersten erzeugt wird.

Richte zuerst die Dinge ein:

%Vor%

Schreiben Sie das dann in eine Skriptdatei (im Folgenden commitAmend.sh genannt)

%Vor%

und führen Sie es aus:

%Vor%

Gleicher Zeitstempel, gleicher Hash!

    
Jubobs 30.01.2015, 14:30
quelle
3

Es ist eine Sekunde; Während git-show die Ausgabe ein wenig prettiert, können Sie die Informationen zum raw-Commit mit dem Befehl git-cat-file sehen. Zum Beispiel:

%Vor%

Sie können tatsächlich sehen, dass dies ein Unix-Zeitstempel mit einer Auflösung von 1 Sekunde ist.

    
Edward Thomson 30.01.2015 14:23
quelle

Tags und Links