在我在分支之间来回切换的 git 存储库中,文件修改时间如mtime
ruby 所示(或基于操作系统的修改时间度量,例如 through ls -l
)显示我上次更改分支的时间而不是实际时间文件被修改。
我了解 Git 存储所有文件的文件修改时间,但我如何获得显示的实际修改日期,例如来自 ruby 调用?
例如,我看到我可以从命令行得到这个:
git log -1 --format="%ad" -- path/to/file
但不确定最好的 Ruby 方法是什么。
我相信这是不可能的;即 git 只存储提交时间,而不是修改时间。但是,您可能想查看metastore,它是 git 的补充,可将此元数据存储在单独的文件中。
但是,由于提交时间足以满足您的目的,您可以直接从 ruby 运行命令;就像是:
%x(git log -1 --format='%ci' path/to/file)
或者您可以使用其中一个ruby git 库。我自己从来没有使用过这些库,所以我不能保证它们中的任何一个。
编辑:添加了关于提交时间的部分,因为这足以满足 OP 的目的。