如何查看在git上创建多个文件的日期?

pol*_*zul 15 git github

我想查看指定目录中所有文件的git创建日期(添加它们的第一次提交日期).

Dav*_*ain 31

我会将我的解决方案分解为步骤.

获取存储库中所有文件的列表

$ git ls-files
Run Code Online (Sandbox Code Playgroud)

这将返回存储库中所有文件的相对路径列表.

获取给定文件的第一次提交的SHA-1:

$ git rev-list HEAD <file> | tail -n 1
Run Code Online (Sandbox Code Playgroud)

这将以反向时间顺序返回给定文件的所有无父提交的列表.最后一个是给定文件的第一次提交的SHA-1哈希.

您可以通过运行来验证这一点git log --raw <hash>.你应该看到类似的东西:

commit <commit_hash>
Author: Susy Q <suzy@example.com>
Date:   Wed Aug 24 12:36:34 2011 -0400

    Add new module 'example.py'

:000000 100644 0000000... <hash>... A  example.py
Run Code Online (Sandbox Code Playgroud)

显示给定提交的日期

$ git show -s --format="%ci" <hash>
Run Code Online (Sandbox Code Playgroud)

在bash脚本中将所有内容整合在一起:

#!/bin/bash
for file in $(git ls-files)
do
    HASH=$(git rev-list HEAD "$file" | tail -n 1)
    DATE=$(git show -s --format="%ci" $HASH --)
    printf "%-35s %s\n  %s\n" "$file" $HASH: "$DATE"
done
Run Code Online (Sandbox Code Playgroud)