Git статус - список последней измененной даты
Используя git, можно ли перечислить дату последнего измененного файла вместе с ним? используя, например,
git status
или
git diff --name-only
Ответы
Ответ 1
Не напрямую, но вы можете использовать трубу:
Примечание: оригинальный ответ обновляется на основе комментариев
Linux:
git status -s | while read mode file; do echo $mode $file $(stat -c %y $file); done
Окна:
git status -s | while read mode file; do echo $mode $(date --reference=$file +"%Y-%m-%d %H:%M:%S") $file; done
OSX (источник):
git status -s | while read mode file; do echo $mode $(stat -f "%m" $file) $file; done|sort
Ответ 2
Примечание. Мне нужно было получить измененные файлы, отсортированные по дате, поэтому я изменил эхо:
git status -s | while read mode file; \
do echo $mode $(stat -c %y $file) $file; \
done|sort -k1,4
Одна линия:
git status -s | while read mode file; do echo $mode $(stat -c %y $file) $file; done|sort -k1,4
Повторяя сначала дату (stat
), а затем файл, я смог сортировать от самой старой до последней модификации.
Сэм Хаслер добавляет в комментарии:
Чтобы сохранить пробелы в режиме:
IFS=''; git status -s | while read -n2 mode; read -n1; read file; do echo $mode $(stat -c %y "$file") $file; done|sort
То есть:
IFS=''; git status -s | while read -n2 mode; read -n1; read file; \
do echo $mode $(stat -c %y "$file") $file; \
done|sort