我正在使用谷歌的git-repo插件。据我了解repo sync
,将从存储库下载整个源代码(即以前的修订版)。这就是为什么要花费大量时间来完成整个过程的原因。
我们可以只从存储库下载最新的提交吗?
我正在使用谷歌的git-repo插件。据我了解repo sync
,将从存储库下载整个源代码(即以前的修订版)。这就是为什么要花费大量时间来完成整个过程的原因。
我们可以只从存储库下载最新的提交吗?
我不使用 repo,但似乎您可以将--depth
标志传递给repo init
. 使用类似repo init -u URL --depth=1
. 深度标志被传递给git-clone
并创建一个仅包含部分历史记录的存储库:
--depth <depth>
创建一个浅克隆,其历史被截断为指定的修订数。浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入),但如果您只对历史悠久的大型项目的近期历史感兴趣,并且想要作为补丁发送修复。
是的,默认情况下git fetch
(这是它的一部分git clone
)将获取远程存储库的完整历史记录。
您可以使用 fetch 命令的选项来限制检索的历史记录数量--depth
(克隆会将其传递给 fetch)。要检索您可以使用的最少历史记录:
git clone --depth 1 REPO_URL
这将检索最新的提交和紧接在它之前的提交,但不会检索较旧的提交。不可能只检索最新的提交,因为深度为 0 被视为想要完整的历史记录;但这很接近。
稍后您可以使用git fetch
更大的深度来增加可用历史记录的数量,或用于git fetch --unshallow
检索完整的历史记录。
目前浅层存储库存在许多限制。文档git clone --depth
说:_
浅层存储库有许多限制(您不能克隆或从中获取,也不能从中推送或进入),但如果您只对历史悠久的大型项目的近期历史感兴趣,并且想要作为补丁发送修复。
尽管最近有一些工作致力于减少甚至消除这些限制。
您正在寻找的可能是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