gpt4 book ai didi

git - 如何有效地获取特定提交的 GitHub 存储库?

转载 作者:太空狗 更新时间:2023-10-29 14:11:05 25 4
gpt4 key购买 nike

我正在尝试构建一个持续集成系统。每次推送到 GitHub 都会触发构建。

每个构建都需要 check out /下载它正在处理的提交的存储库。我正在尝试找到一种在大型存储库上不会花费几分钟的方法(因为构建只需要几秒钟......)。

请注意,我不想在构建之间存储数据(这消除了缓存的可能性)。

我探索过的解决方案:

我在 GitHub 上看到的所有其他解决方案都假设服务器上有最新的 git 版本,或者克隆存储库一次就可以了,但在我的例子中不是这样。我在每次构建时都从头开始(因为这是一个限制)。

所以我在 GitHub 的特定情况下问:我如何(以任何方式)下载特定提交的代码以便能够在该提交上运行持续集成工具?

最佳答案

您可以使用以下形式的 URL 从 GitHub 下载特定提交的存档:

https://github.com/PROJECT/REPO/archive/COMMITID.zip

例如,如果我有一个名为“dockerize”的项目并且我想下载提交 ID 169532e 我可以运行:

curl -OL https://github.com/larsks/dockerize/archive/169532e.zip

我在这里使用的是短提交 ID,但您可以使用长提交 ID、分支或标记等。

这将给我一个 .zip 存档,其中包含来自该特定提交的文件。顶级目录将被命名为 PROJECT-LONGCOMMITID。例如,上面的命令将生成一个顶级目录为 的存档
dockerize-169532eba46757aca8002e1c9bb257079a739f75/README.md
.

这让您该特定提交中的文件;它不会获取 .git 目录或任何存储库历史记录。

关于git - 如何有效地获取特定提交的 GitHub 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com