Das kannst du nicht - zumindest nicht allein in Git. (Erinnerung an andere , diese Frage zu besuchen: Es geht nicht darum , sehen den Autor Datum, es geht um Commits durch die Auswahl des Autors Datum, a la --since
/ --after
und --until
/ --before
verwenden Diese Selektoren das. Committer Datum, nicht der Autor Datum Betrachten wir als ein extremes Beispiel ein begehen. "jetzt" gemacht, so dass sein Committer-Datum in den 2000er Jahren liegt, aber im Feld "Autorendatum" auf einen Tag im Jahr 1999 zurückdatiert ist. Wenn Ihr Auswahlbereich "jederzeit nahe der Jahrhundertwende" ist, werden Sie de -Wählen Sie dieses Commit aus, da sein Committer-Datum "jetzt" ist, mehr als ein Jahrzehnt nach 1999.)
Ich halte dies für einen kleinen Fehler in Git: Sie sollten in der Lage sein, die Verwendung des Autorendatumsfelds überall dort anzufordern, wo Sie die Verwendung des Committer-Datumsfelds anfordern können. Dies ist leicht mit Protokoll Formatierung , da wir %ad
und %cd
und dergleichen, aber nicht mit Auswahl begehen . Das nächste, das wir haben, ist das git rev-list
Sortieren nach Autorendatum (innerhalb der allgemeinen Toposortierung).
Ein globaler Schalter in git rev-list
, wie --use-author-date
würde als einfacher Patch arbeiten, und würde nicht allzu schwer zu Git hinzuzufügen, aber ich denke , es wäre besser , zu haben --min-author-age
und --max-author-age
oder ähnlich, und ein „sortiert nach Autor Datum“ Flag (unabhängig von das allgemeine --topo-order
Flag, so dass das Setzen beider Flags den gleichen Effekt hat wie --author-date-order
).
Um dieses Problem zu umgehen, können Sie alle potenziell interessanten Commits auflisten (mit git rev-list
oder gleichwertig, z. B git log
.: Verwenden Sie einen beliebigen Bezeichner, der Commits potenziell interessant macht, mit Ausnahme von Datumsfiltern: in diesem Fall ist dies nur der Fall --all
) und extrahieren Sie alle Felder für das Autorendatum (mit git log --format=%at
oder was auch immer), schneiden Sie dann die Liste der Festschreibungs-IDs selbst ab und senden Sie die verbleibenden Festschreibungs-IDs erneut an git log --no-walk
. Aber das ist bestenfalls schmerzhaft. Weitere Informationen finden Sie in der Antwort von Tim Beigeleisen mit awk .