Git:显示最近未修改的文件



为了清理一些git存储库,我想列出所有超过一段时间没有收到任何新提交的文件(例如,让我们告诉一年)。

我知道如何列出 X 最近修改的文件,但不知道如何做相反的:)

谢谢。

下面是一个 1 行代码,用于显示去年未更改的文件:

git ls-files | grep -v "$(git log --pretty=format: --name-only --since='1 year ago' | sort | uniq)"

您也许可以将其包装在别名中,以便于调用。

编写一个遍历所有文件的脚本,从文件中提取修改日期,然后打印出来。

它与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 - 仅打印出文件名

循环并打印出从文件日志的最后修改日期

要克服grep: Argument list too long错误,必须通过文件工作:

$ git ls-files --full-name | sort > all.git
$ git log --pretty=format: --name-only --since='1 year ago' | sort | uniq > recent.git
$ comm -23 all.git recent.git

comm是一个仅限Linux的实用程序,希望其他平台也有类似的实用程序)

最新更新