是否有一个简单的Git命令来确定存储库中文件的"创建日期",即它首次添加的日期?
如果它甚至可以通过文件重命名/移动来确定它,那将是最好的.我希望它是一个计算机可读的单行输出; 可能是我没有找到正确的git log <fname>选项来做到这一点.
shi*_*ara 53
git log --format=%aD <FILE> | tail -1
使用此命令,您可以关闭此文件的所有日期并提取最后一个
ruv*_*vim 30
原生解决方案:
git log --diff-filter=A --follow --format=%aD -1 -- <fname>
Run Code Online (Sandbox Code Playgroud)
它给出了存储库中文件的最后 "创建日期",无论文件重命名/移动如何都可以.
-1是同义词--max-count=1,它限制了输出的提交数量(在我们的例子中不超过一个).
由于可以多次添加文件,因此需要此限制.例如,可以添加,然后删除,然后再添加.在这种情况下,--diff-filter=A将为此文件生成多行.
要在第一行中获得第一个创建日期,我们应该使用--reverse选项而不受限制(因为在订购之前应用了限制).
git log --diff-filter=A --follow --format=%aI --reverse -- <fname> | head -1
Run Code Online (Sandbox Code Playgroud)
%aI以严格的ISO 8601格式(例如2009-06-03T07:08:51-07:00)给出日期.
但由于Git中已知的错误,此命令无法正常工作(请参阅" - 在git maillist中使用--reverse "对话时忽略--follow).因此,我们被迫使用一些工作一段时间来获得第一个创建日期.
git log --diff-filter=A --follow --format=%aI -- <fname> | tail -1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13614 次 |
| 最近记录: |