从历史时间点克隆git存储库

时间:2013-06-03 10:25:35

标签: git

我正在开发一个Rails应用程序并使用git。我决定尝试一个新的gem,并在任何更改之前创建一个git commit。实现gem需要删除一些我自己的代码。

当我添加gem并进行其他一些更改时,我意识到让应用程序的早期版本运行会很好,所以我可以并排比较。

我通过回滚git,复制文件树然后重新应用与新gem相关的更改来解决了这个问题。那就是我做了以下事情:

$ git reset --hard HEAD
$ git clean -f -d

是否可以从其中一个历史保存点创建(本地)git存储库的克隆?

2 个答案:

答案 0 :(得分:5)

假设“历史保存点”等同于提交时间,因为默认情况下不记录特定于文件的时间戳,checkout命令的语法似乎是:

git checkout 分支 @ { timediff }

git checkout master@{1 day ago}一样,您可以使用git log来隔离您的提交ID,并使用git checkout master commitId 进行检查。

答案 1 :(得分:2)

您是否尝试过git checkout <commit hash>

执行此git后会显示如下消息:

  

注意:转移到不是本地分支的''如果你   想要从这个结账创建一个新的分支,你可以这样做(现在或   之后)再次使用-b和checkout命令。示例:git   checkout -b HEAD现在是4553c14 ......