2013-10-14 17 views
10

Jak mogę wyświetlić listę plików posortowanych według czasu modyfikacji?git ls-files sortuj według czasu modyfikacji

Chcę czas modyfikacji git, a nie czas modyfikacji systemu. Na przykład, jeśli mam (oddany) plik README, następnie

touch README 

zmieni czas modyfikacji systemu ... ale git status pozostanie niezmieniony.

Gdy próbuję

git ls-files -z | xargs -0 ls -t 

to będzie sortować według czasu modyfikacji systemu.

Czy istnieje opcja dla git ls-files, która wyświetli listę plików posortowanych według czasu modyfikacji git?

Odpowiedz

15

Czy istnieje możliwość git ls-files że liście plików posortowane według ich git czas modyfikacji?

Nie sądzę. Jednym z możliwych sposobów byłoby powtórzenie plików, pobranie znacznika czasu przy użyciu wyjścia o wartości git log i sort.

Poniższa może pracować dla Ciebie:

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

byłem w stanie posortować pliki w folderze za pomocą następującego polecenia

git ls-files -z -- "${dir}" | xargs -0 -n1 -I{} -- git log -1 --format="%at {}" {} | sort | tail -n1 | cut -d " " -f2-