git ls-files 按修改时间排序

标签 git sorting

如何列出按修改时间排序的文件?

我要的是git修改时间,不是系统修改时间。例如,如果我有一个(提交的)文件 README,那么

touch README

将更改系统修改时间...但 git status 将保持不变。

如果我尝试

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

这将按系统修改时间排序。

git ls-files 是否有任何选项可以列出按 git 修改时间排序的文件?

最佳答案

Is there any option to git ls-files that would list files sorted by their git modification time?

我不这么认为。一种可能的方法是遍历文件,使用 git log 获取时间戳,并对输出进行排序

以下内容可能对您有用:

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

关于git ls-files 按修改时间排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19362345/

相关文章:

git bash 无法推送分支,错误消息为 : "object directory does not exist"

c++ - C++结构数组的新顺序

C : Input file does not sort in array

git - GitHub 上的 "This branch is 0 commits ahead and 0 commits behind master"是什么意思?

git - 使用 ssh key 与 Chef checkout git repo

linux - 如何在终端钥匙串(keychain)中的 Linux 上存储你的 github https 密码?

java - 在 Java 中对自定义链表进行排序

linux - 如何通过 1 步将本地分支删除传播到远程 - git, github

swift - 如何在 Swift 中对字典键进行排序?

java - API 21 中组合多种排序的最佳方式