Git 查看提交的时间是推送时间

10
如何在给定时间点查看Git仓库中的版本?
假设我有一个共享仓库,多个用户可以向其中推送更改,我想在过去某一天的12:00冻结一个快照。
如果有人在11:30进行了本地提交,但直到12:30才将其推送到中央仓库,那么我是否能在稍后检测到它?
如果有人在12:00之后修改了本地提交记录以使其显示为11:30的提交日期,并将其推送到上游,我是否能检测到?
3个回答

11

Git本身不会跟踪这些信息,但我可以查看git存储库中“objects”目录中提交对象文件的文件创建时间戳。


2
您可以使用钩子,可能是post-receive hook来自行存储所需信息,或者只需启用reflog(在裸仓库中默认禁用)。Reflog会自动跟踪分支的本地历史记录,例如,git reflog -1 --format=%H master@{12:00}将告诉您master引用在12:00指向哪个提交。
请注意,reflog会过期,您可以使用gc.reflogexpire配置过期时间。

1

git 不会记录推送到存储库(或获取)的内容,只会记录提交本身的两个时间戳,因此我认为没有可靠的方法可以在不编写钩子来存储额外元数据的情况下完成这一点,或者依赖于由 git-daemon、ssh 或您的 http 服务器执行的日志记录,具体取决于用于推送/获取的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接