3

我正在使用谷歌的git-repo插件。据我了解repo sync,将从存储库下载整个源代码(即以前的修订版)。这就是为什么要花费大量时间来完成整个过程的原因。

我们可以只从存储库下载最新的提交吗?

4

3 回答 3

5

我不使用 repo,但似乎您可以--depth标志传递给repo init. 使用类似repo init -u URL --depth=1. 深度标志被传递给git-clone并创建一个仅包含部分历史记录的存储库:

--depth <depth>

创建一个克隆,其历史被截断为指定的修订数。浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入),但如果您只对历史悠久的大型项目的近期历史感兴趣,并且想要作为补丁发送修复。

于 2013-08-10T16:26:08.043 回答
2

是的,默认情况下git fetch(这是它的一部分git clone)将获取远程存储库的完整历史记录。

您可以使用 fetch 命令的选项来限制检索的历史记录数量--depth (克隆会将其传递给 fetch)。要检索您可以使用的最少历史记录:

git clone --depth 1 REPO_URL

这将检索最新的提交和紧接在它之前的提交,但不会检索较旧的提交。不可能只检索最新的提交,因为深度为 0 被视为想要完整的历史记录;但这很接近。

稍后您可以使用git fetch更大的深度来增加可用历史记录的数量,或用于git fetch --unshallow检索完整的历史记录。

目前浅层存储库存在许多限制。文档git clone --depth说:_

浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入),但如果您只对历史悠久的大型项目的近期历史感兴趣,并且想要作为补丁发送修复。

尽管最近有一些工作致力于减少甚至消除这些限制。

于 2013-08-10T14:23:28.600 回答
0

您正在寻找的可能是git pull See the docs。您首先需要将您的 github 存储库添加为远程主机:

git remote add master git@github.com:username/repository.git

之后,您可以从存储库中提取。在 github 上还有一个链接可以将任何提交下载为.zip文件。格式通常是:

https://github.com/username/repository/archive/master.zip
于 2013-08-10T12:48:12.133 回答