我正在尝试从特定日期克隆git存储库。即使这是不可能的。是否可以克隆git存储库,然后将其回滚到某个日期?
示例:我的存储库自2010年5月以来已更新,但我想从6月5日开始获取该版本。我想运行以下命令:
git clone git@github.com:projectfolder -date 06-05-2010
答案 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 log
或gitk
从您想要的日期获取提交的SHA1,然后git checkout
。