我正在使用Google的git-repo插件。根据我的理解repo sync
将从存储库下载整个源代码(即先前的修订版)。这就是为什么花费大量时间来完成整个过程的原因。
我们可以只下载存储库中的最新提交吗?
答案 0 :(得分:5)
我不使用回购,但您似乎可以pass the --depth
flag到repo init
。使用repo init -u URL --depth=1
之类的东西。深度标志将传递给git-clone
,并创建仅包含部分历史记录的回购:
--depth <depth>
创建浅克隆,并将历史记录截断为指定的修订数。浅存储库有许多 限制(你不能克隆或获取它,也不能从中推入或推入 它),但如果你只对最近的历史感兴趣,那就足够了 一个历史悠久的大型项目,并希望发送 修复为补丁。
答案 1 :(得分:2)
是的,默认情况下git fetch
(这是git clone
所做的一部分)将获取
远程存储库的完整历史记录。
您可以使用--depth
限制检索的历史记录数量
fetch命令的选项(clone将把它传递给fetch)。检索
您可以使用的历史记录最少:
git clone --depth 1 REPO_URL
这将检索最新的提交以及紧接在其之前的提交, 但不是旧的提交。无法仅检索最新提交, 因为0的深度被认为是想要完整的历史;但这很接近。
稍后您可以使用更大深度的git fetch
来增加金额
可用历史记录,或使用git fetch --unshallow
检索完整记录
历史。
浅层存储库目前存在许多限制。该
git clone --depth
的{{3}}说:
浅存储库有许多限制(您无法克隆或获取 从它,也不是从它推进或推入它),但如果你是唯一的,那就足够了 对历史悠久的大型项目的近期历史感兴趣 希望将修补程序作为补丁发送。
虽然最近有关于减少甚至删除的工作 那些限制。
答案 2 :(得分:0)
您正在寻找的可能是git pull
见the docs。首先需要将github存储库添加为远程主机:
git remote add master git@github.com:username/repository.git
之后您可以从存储库中提取。在github上还有一个链接可以将任何提交下载为.zip
文件。格式通常是:
https://github.com/username/repository/archive/master.zip