Ich kann das letzte Änderungsdatum einer einzelnen Datei in einem Git-Repository abrufen:
git log -1 --format="%ad" -- path/to/file
Gibt es eine einfache und effiziente Möglichkeit, dasselbe für alle derzeit im Repository vorhandenen Dateien zu tun?
git ls-tree -r --name-only HEAD | while read filename; do echo "$(git log -1 --format="%ai" -- $filename) $filename"; done | sort
Dieser Ansatz funktioniert auch mit Dateinamen, die Leerzeichen enthalten:
Beispielausgabe:
Die Ausgabe kann nach Änderungszeitstempel sortiert werden, indem
| sort
am Ende Folgendes hinzugefügt wird :quelle
Dies ist eine kleine Änderung von Andrew M.'s Antwort. (Ich konnte seine Antwort nicht kommentieren.)
Setzen Sie den ersten Dateinamen in doppelte Anführungszeichen , um Dateinamen mit eingebetteten Leerzeichen zu unterstützen.
Beispielausgabe:
Ich schätze, dass Andrews Lösung (basierend auf ls-tree ) mit nackten Repositorys funktioniert! (Dies gilt nicht für Lösungen mit ls-Dateien.)
quelle
Hier ist die Fischmuschel-Version von Andrew Ms Antwort für diejenigen, die Fisch verwenden.
Ich speichere dies als Fischfunktion für den einfachen Zugriff.
quelle
Für diejenigen von uns, die Windows und PowerShell verwenden, die Antwort von Andrew M mit dem computerlesbaren Tweak:
Beispielausgabe:
quelle