什么是git-repo init和git-repo同步?

时间:2013-08-10 12:41:38

标签: git github repository

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

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

3 个答案:

答案 0 :(得分:5)

我不使用回购,但您似乎可以pass the --depth flagrepo 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 pullthe docs。首先需要将github存储库添加为远程主机:

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

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

https://github.com/username/repository/archive/master.zip