2013-10-14 85 views
10

如何列出按修改時間排序的文件?git ls-files按修改時間排序

我想要git修改時間,而不是系統修改時間。舉例來說,如果我有一個(提交)文件README,然後

touch README 

將改變系統修改時間......但git的地位將保持不變。

如果我嘗試

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

這將由系統修改時間進行排序。

是否有任何選項git ls-files可以列出按其git修改時間排序的文件?

回答

15

是否有任何選項git ls-files將列出受 他們的混帳修改時間排序的文件?

我不這麼認爲。一種可能的方式是迭代文件,使用git logsort輸出獲得時間戳。

下可能會爲你工作:

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- 
到文件夾中的排序