克隆 GitHub 存储库的旧版本

92

我有一台Amazon EC2机器。我想在这台机器上克隆一个较旧版本的github仓库。通常我使用git clone https://linktomyrepo.git如何克隆一个旧版本,比如14天前的更新?我可以在存储库的提交历史中看到我需要的确切版本,但不知道如何将其克隆到EC2机器上。我需要使用每个提交旁边的小SHA代码吗?

5个回答

89

您可以使用提交哈希来检查任何给定状态。

例如,通过查看日志,您确定233ab4ef是您感兴趣的状态:执行git checkout 233ab4ef以检出该状态。

另一种实现方法是使用 git checkout @{14.days.ago}


2
git checkout @{14.days.ago} 中的 14 究竟代表什么? - Shafizadeh
4
看起来你要克隆的是几天前的代码库。如果我理解正确,这意味着“基于从今天算起14天前的代码库进行克隆”。如果我的理解有误,请见谅。 - jrb
关于“从旧版本继续我的项目”?我可以对其进行更改并“重新开始提交”吗? - Peter Krauss

54

Git并不是被设计成那样的。当你克隆一个仓库时,你会复制所有的版本。

所以,首先要克隆一个仓库(这将初始检出最新版本),然后检出你真正想要的版本。

你可以根据哈希值来检出提交的版本。

git checkout afe52

你也可以按照日期来查看(而不是查找哈希值):

git checkout 'master@{1979-02-26 18:30:00}'
git checkout @{14.days.ago}

要查看可以检出的提交,请使用git log


1
如果有成千上万个提交,怎么办?查看所有已标记的发布的最快方法是什么?比如版本1、2、3等。 - fIwJlxSzApHEZIl
1
要查看所有标签,您可以使用 git tag 命令,要查看特定标签的详细信息,您可以使用 git cat-file tag TAG_NAME 命令。例如,在节点存储库中,我可以使用 git cat-file tag v4.4.7 命令来显示提交字符串 0974fc6a25c343744235331eb20d31f6412ff7e1。 :) - Dobz

19

Github.com的用户界面中,若想下载某个提交记录,可按以下步骤进行:

  1. 点击“Commits”
  2. 在所需提交记录右侧点击“<>”图标
  3. 选择“Clone or Download”
  4. 下载ZIP文件

Commits

选择提交记录

下载ZIP文件


这很有帮助!我不知道为什么错过了这个,但是花了整整15分钟来尝试下载一个旧版本的存储库作为独立的zip文件。太完美了,谢谢! - Benbodhi

1
在Github上,旧版本通常指的是旧分支。例如:

enter image description here

在这种情况下,您可以通过使用其分支名称来查看旧分支。请注意保留HTML标签。
git clone --branch <branchname> <remote-repo-url>

您可以在这里获取远程仓库URL:

enter image description here


0

针对github.com UI,发布此解决方案。

我使用的是较旧版本的Keycloak,并希望下载源代码。在github.com上,这是一个简单的过程:

  1. 进入发布部分
  2. 下载所需版本。

enter image description here enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接