git:如何在特定日期检索所有文件

c-u*_*hin 12 git

我确信这可以做到(?)(在明文中它会非常简单).

ara*_*nid 12

使用git log来确定一个合适的版本切换到,例如:

git log --since='2010-04-01' --until='2010-04-02'
Run Code Online (Sandbox Code Playgroud)

这将显示2010-04-01的所有提交,因此只需选择与您想要文件的瞬间相对应的提交,并记下其提交ID.然后只需使用git checkout COMMIT-ID将工作区切换到该提交.这将从当前分支中分离您的工作区(HEAD),用于git checkout master返回.


Von*_*onC 5

不要忘记文件时间戳不会记录在像 Git 这样的 DVCS 中。
那里只有提交时间戳,您可以轻松检出某个日期的提交。

git checkout master@{1 month 2 weeks 3 days 1 hour 1 second ago}
Run Code Online (Sandbox Code Playgroud)

(注意:这样的结账会给你一个分离的 HEAD


在 ClearCase 中,这很容易,只要您将“保留文件时间”选项设置为 true
(如果没有,你实际上记录了每个文件的checkin时间,有点像Git commit时间戳,除了每个文件)