2013-10-14 28 views
10

Làm cách nào để liệt kê các tệp được sắp xếp theo thời gian sửa đổi của chúng?git ls-files sắp xếp theo thời gian sửa đổi

Tôi muốn thời gian sửa đổi git, không phải thời gian sửa đổi hệ thống. Ví dụ, nếu tôi có một (cam kết) nộp README, sau đó

touch README 

sẽ thay đổi thời gian sửa đổi hệ thống ... nhưng tình trạng git sẽ không thay đổi.

Nếu tôi cố gắng

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

này sẽ sắp xếp theo thời gian sửa đổi hệ thống.

Có tùy chọn nào để git ls-files có liệt kê các tệp được sắp xếp theo thời gian sửa đổi của git không?

Trả lời

15

Có tùy chọn nào để git ls-files có liệt kê các tệp được sắp xếp theo thời gian sửa đổi git của chúng không?

Tôi không nghĩ vậy. Một cách có thể là lặp lại các tệp, nhận dấu thời gian bằng cách sử dụng git logsort đầu ra.

Sau đây có thể làm việc cho bạn:

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

tôi đã có thể sắp xếp các file trong một thư mục bằng cách sử dụng lệnh sau

git ls-files -z -- "${dir}" | xargs -0 -n1 -I{} -- git log -1 --format="%at {}" {} | sort | tail -n1 | cut -d " " -f2- 
Các vấn đề liên quan