ChatGPT解决这个技术问题 Extra ChatGPT

克隆旧版本的 github repo

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


O
Olivier Refalo

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

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

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


git checkout @{14.days.ago} 中的 14 到底是什么?
它看起来像您要克隆的天数。抱歉,如果这不是您要问的。如果我没看错的话,这就是说“根据从今天起 14 天前的样子克隆回购”。
关于“从这个旧版本继续我的项目”?我可以从中进行更改并“重新启动提交”吗?
r
ronalchn

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 给我展示提交字符串 { 4}。 :)
T
TSpartanT

同样对于 Github.com UI,

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

转到“提交” 单击所需提交右侧的“<>”图标 选择克隆或下载 下载 ZIP

Commits

Select Commit

Download ZIP


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

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

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

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

https://i.stack.imgur.com/BSn6p.png


E
ESP32

Github 上的旧版本通常意味着旧分支。例如:

https://i.stack.imgur.com/LLyW4.png

在这种情况下,您可以使用其分支名称检查旧分支:

git clone --branch <branchname> <remote-repo-url>

你可以在这里:

https://i.stack.imgur.com/7Hkbu.png