在git存储库中获取正确的文件修改时间(在ruby中)

时间:2013-02-26 22:01:56

标签: ruby git

在我在分支之间来回切换的git存储库中,文件修改时间如ruby中的mtime所示(或基于操作系统的修改时间度量,例如通过ls -l )显示我上次更改分支的时间,而不是文件被修改的实际时间。

我理解Git存储所有文件的文件修改时间,但是如何显示实际的修改日期,例如来自红宝石的电话?

e.g。我看到我可以从命令行获取此信息:

git log -1 --format="%ad" -- path/to/file

但不确定最好的Ruby方法是做什么的。

1 个答案:

答案 0 :(得分:1)

我相信这是不可能的;即git只存储提交时间,而不是修改时间。但是,您可能需要查看metastore,这是git的一个补充,可将此元数据存储在单独的文件中。

但是,由于提交时间足以满足您的需要,您可以直接从ruby运行命令;类似的东西:

%x(git log -1 --format='%ci' path/to/file)

或者您可以使用其中一个ruby git libraries。我自己从来没有使用过这些库,所以我不能保证它们中的任何一个。

编辑:添加了关于提交时间的部分,因为这足以满足OP的目的。