我确信这可以完成(?)(在明文中它会非常简单)。
答案 0 :(得分:12)
使用git log
确定要切换到的合适修订版本,例如:
git log --since='2010-04-01' --until='2010-04-02'
这将显示2010-04-01上的所有提交,因此只需选择与您想要文件的瞬间相对应的提交,并记下其提交ID。然后使用git checkout COMMIT-ID
将工作区切换到该提交。这将从当前分支中分离您的工作区(HEAD),使用git checkout master
返回。
答案 1 :(得分:4)
不要忘记像Git这样的DVCS中的file timestamp are not recorded 只有提交时间戳,您可以在特定日期轻松签出提交。
git checkout master@{1 month 2 weeks 3 days 1 hour 1 second ago}
(注意:这样的结账会给你一个detached HEAD)
在ClearCase中,如果您将“保存文件时间”选项设置为true ,这很容易。
(如果没有,你实际上记录了每个文件的签入时间,这有点像Git提交时间戳,除了每个文件)
答案 2 :(得分:2)
首先,您必须获取标识提交的字符串:
git rev-list -n 1 --before="2009-07-27 13:37" origin/master
它打印字符串(例如XXXX),复制它并执行以下命令:
git checkout XXXX