如何在Git中克隆特定日期的远程(GitHub)存储库

时间:2010-09-24 20:19:23

标签: git github

我正在尝试从特定日期克隆git存储库。即使这是不可能的。是否可以克隆git存储库,然后将其回滚到某个日期?

示例:我的存储库自2010年5月以来已更新,但我想从6月5日开始获取该版本。我想运行以下命令:

git clone git@github.com:projectfolder -date 06-05-2010

5 个答案:

答案 0 :(得分:22)

克隆存储库将为您提供所有源代码的完整提交历史记录。

您只需向后滚动git log,然后在目标日期找到所需的提交。运行git checkout SHA其中SHA是提交哈希将为您提供该日期源代码的状态。

编辑:

git log --since=2010-06-05 --until=2010-06-06将有助于缩小范围!

答案 1 :(得分:5)

也许是这样的:

git log --since=2010-06-05 --until=2010-06-05

找到您喜欢的提交ID之一,然后执行git checkout <checkout id>

答案 2 :(得分:4)

git clone git@github.com:projectfolder
git reset --hard $(git rev-list -1 $(git rev-parse --until=2010-06-06) master)

答案 3 :(得分:3)

您可以使用git的revert命令将每次提交恢复到您要查找的日期,或者您可以在您感兴趣的提交中创建一个新分支。

答案 4 :(得分:1)

考虑以下提交:

5 May (A) -- 7 May -- master (current)
5 May (B) -- 7 May /

git无法确定您是想要提交A还是B。因此,您应该使用git loggitk从您想要的日期获取提交的SHA1,然后git checkout