git ls-tree --name-only HEAD foldername/ | while read filename; do echo "$(git log -1 --format="%ci " -- $filename) $filename"; done | sort -r
Эта команда git ls-tree --name-only HEAD foldername/ | while read filename; do echo "$(git log -1 --format="%ci " -- $filename) $filename"; done | sort -r позволяет получить список файлов в папке foldername/ репозитория Git, отсортированный по дате последнего коммита в убывающем порядке.
— git ls-tree --name-only HEAD foldername/ выводит список файлов в указанной папке.
— while read filename; do ... done читает каждый файл из списка и выполняет следующие действия для него.
— git log -1 --format="%ci " -- $filename выводит дату последнего коммита для каждого файла.
— sort -r сортирует результаты в обратном (убывающем) порядке, таким образом, файлы с более поздними коммитами будут выше в списке.
Альтернативой может быть использование команды git log --name-only --format="%ci %n" foldername/ | sort -r | grep -E "^[0-9]{4}-[0-9]{2}-[0-9]{2}", которая также вернет список файлов в указанной папке, отсортированный по дате последнего коммита.
