是否有一个简单的Git命令来确定存储库中文件的“创建日期”,即它首次添加的日期?
最好能通过文件重命名/移动来确定这一点。我希望它是一个计算机可读的单行输出;可能是因为我没有找到正确的git log <fname>
选项来执行此操作。
答案 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