查找文件首次添加到Git存储库的日期/时间

时间:2010-03-05 21:54:15

标签: git

是否有一个简单的Git命令来确定存储库中文件的“创建日期”,即它首次添加的日期?

最好能通过文件重命名/移动来确定这一点。我希望它是一个计算机可读的单行输出;可能是因为我没有找到正确的git log <fname>选项来执行此操作。

2 个答案:

答案 0 :(得分:50)

git log --format=%aD <FILE> | tail -1

使用此命令,您可以关闭此文件的所有日期并提取最后一个

答案 1 :(得分:30)

原生解决方案:

git log --diff-filter=A --follow --format=%aD -1 -- <fname> 

它提供最后&#34;创建日期&#34;存储库中的文件,无论文件重命名/移动如何都可以。

-1--max-count=1的同义词,它限制了输出的提交次数(在我们的例子中不超过一次)。

由于可以多次添加文件,因此需要此限制。例如,可以添加,然后删除,然后再添加。在这种情况下,--diff-filter=A将为此文件生成多行。

要在第一行中获得第一个创建日期,我们应该使用--reverse选项而不受限制(因为在订购之前应用了limit)。

git log --diff-filter=A --follow --format=%aI --reverse -- <fname> | head -1

%aI以严格的ISO 8601格式提供日期(例如2009-06-03T07:08:51-07:00)。

但由于Git中的已知错误,此命令无法正常工作(请参阅&#34; --follow is ignored when used with --reverse&#34; git maillist中的对话)。因此,我们不得不暂时使用一些工作来获得第一个创建日期。

git log --diff-filter=A --follow --format=%aI -- <fname> | tail -1