Git ls-files сортировать по времени модификации
Как я могу перечислить файлы, отсортированные по времени их модификации?
Я хочу время модификации git, а не время изменения системы. Например, если у меня есть (зафиксированный) файл README
, то
touch README
изменит время изменения системы... но статус git останется неизменным.
Если я попробую
git ls-files -z | xargs -0 ls -t
это будет сортироваться по времени изменения системы.
Есть ли опция git ls-files
, которая будет отображать файлы, отсортированные по их времени git?
Ответы
Ответ 1
Есть ли опция git ls-files
, которая будет отображать файлы, отсортированные по их время модификации git?
Я так не думаю. Один из возможных способов - перебрать файлы, получить временную метку с помощью git log
и sort
вывода.
Для вас может быть выполнено следующее:
while read file; do echo $(git log --pretty=format:%ad -n 1 --date=raw -- $file) $file; done < <(git ls-tree -r --name-only HEAD) | sort -k1,1n
Ответ 2
Мне удалось сортировать файлы в папке, используя следующую команду
git ls-files -z -- "${dir}" | xargs -0 -n1 -I{} -- git log -1 --format="%at {}" {} | sort | tail -n1 | cut -d " " -f2-