Как получить дату последней фиксации для группы файлов в Git?

Какой самый простой однострочный способ получить дату последней фиксации для группы файлов в репозитории Git (т. Е. Для каждого файла дату последней фиксации, которая изменила этот файл) ?

Контекст для этого заключается в том, что я использую другие команды Bash, чтобы найти длинный список файлов, соответствующих некоторым критериям, и я хотел бы просто передать этот список в команду Git, чтобы получить дату последней фиксации для каждого файл.

49
задан Peter Mortensen 10 November 2017 в 05:55
поделиться

1 ответ

Используйте git ls-files, чтобы найти, что файлы мерзавца, и затем git log форматируют вывод. Но с тех пор git log соберет в группу несколько файлов, когда они совместно используют то же время фиксации, я предпочитаю иметь их, обрабатывают один файл за один раз и затем сортируют результат.

законченная острота:

for f in $(git ls-files); do git --no-pager log --color -1 --date=short --pretty=format:'%C(cyan)%ai%Creset' -- $f ; echo  " $f"; done |sort -r

, Если Вы хотите добавить его к своему .bashrc:

function gls() {
    for f in $(git ls-files); do git --no-pager log --color -1 --date=short --pretty=format:'%C(cyan)%ai%Creset' -- $f ; echo  " $f"; done |sort -r
}

Затем выполнение gls произведет что-то как:

2019-09-30 11:42:40 -0400 a.c
2019-08-20 11:59:56 -0400 b.conf
2019-08-19 16:18:00 -0400 c.c
2019-08-19 16:17:51 -0400 d.pc

результат находится в порядке по убыванию времени.

0
ответ дан 7 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: