为了清理一些git repo,我想列出所有没有收到任何新提交超过一段时间的文件(例如,让我们告诉一年)。
我知道如何列出X最近修改的文件,但不知道如何做相反的事情:)
感谢。
答案 0 :(得分:2)
这是一个1-liner,显示去年不的文件被改变:
git ls-files | grep -v "$(git log --pretty=format: --name-only --since='1 year ago' | sort | uniq)"
您可以将其包装在一个别名中,以便更容易调用。
答案 1 :(得分:0)
编写一个循环遍历所有文件的脚本,从文件中提取修改日期,然后打印出来。
它与GIt无关。 : - )
如果您想使用git命令执行此操作,则无法使用 ls-tree
命令:
# loop over the files and print last modification date
git ls-tree -r --name-only HEAD | while read filename; do
echo "$(git log -1 --format="%ad" -- $filename) $filename"
done
<强>
ls-tree
强>列出树对象的内容
--name-only
- 仅打印文件名
循环和打印输出形成上次修改日期的文件日志