【问题标题】:Cloning an older version of github repo克隆旧版本的 github repo
【发布时间】:2012-09-04 02:43:30
【问题描述】:

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

【问题讨论】:

    标签: git github git-checkout


    【解决方案1】:

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

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

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

    【讨论】:

    • 14 中的 git checkout @{14.days.ago} 到底是什么?
    • 您要克隆的天数似乎是天数。抱歉,如果这不是您要问的。如果我没看错的话,这就是说“根据从今天起 14 天前的样子克隆 repo”。
    • 关于“从这个旧版本继续我的项目”?我可以从中进行更改并“重新启动提交”吗?
    【解决方案2】:

    同样适用于 Github.com UI,

    对于那些想要下载特定提交的人,步骤如下:

    1. 转到“提交”
    2. 单击所需提交右侧的“”图标
    3. 选择克隆或下载
    4. 下载 ZIP

    Commits

    Select Commit

    Download ZIP

    【讨论】:

    • 这很有帮助!我不知道我是怎么错过的,但是花了整整 15 分钟试图弄清楚如何将旧状态的 repo 副本下载为独立的 zip。完美,谢谢!
    【解决方案3】:

    Git 不是这样设计的。克隆存储库时,您将复制所有版本。

    所以首先克隆一个存储库(它最初会签出最新版本),然后签出您真正想要的版本。

    您可以根据哈希检查提交。

    git checkout afe52
    

    您还可以根据日期结帐(而不是查找哈希),例如:

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

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

    【讨论】:

    • 如果有数千个提交怎么办?查看所有标记版本的最快方法是什么?比如说版本 1、2、3 等。
    • @anon58192932 查看您可以使用的所有标签git tag 并查看该特定标签的详细信息,您可以使用git cat-file tag TAG_NAME 例如我可以在节点回购中使用git cat-file tag v4.4.7给我看看提交字符串0974fc6a25c343744235331eb20d31f6412ff7e1。 :)
    【解决方案4】:

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

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

    1. 转到版本部分
    2. 下载所需的版本。

    【讨论】:

      猜你喜欢
      • 2012-07-27
      • 2014-03-03
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多