首页 > 解决方案 > 我如何克隆一个包含已有文件的仓库

问题描述

我有一个通过 zip 下载的 repo,我想做一个 git clone,但检测我已经拥有的所有文件,而不是克隆所有 repo。

可能吗 ?

只是更新文件夹的 Git 索引并检测我已经拥有的所有文件以便像往常一样继续工作?

仓库在 gitlab

标签: gitgitlab

解决方案


仅使用单个提交的存档无法更有效地克隆存储库。

为了找出双方拥有的数据,客户端和服务器协商一组共同的提交和标签。这可能会发生几次。一旦服务器知道客户端拥有什么以及它想要什么,它就会发送其余的。例如,如果客户端说它有修订 A,那么服务器知道,除非客户端说它是浅的或部分的,否则客户端必须在历史记录中具有 A 之前的所有项目。

在您的情况下,您没有任何提交对象,并且您无法创建服务器知道的提交对象,因为您没有前面的对象可以这样做。即使您确实通过一次提交创建了一个新存储库,服务器也不会知道它,因此无法向您发送更少的数据。

所以这就是为什么你真的不能克隆一个只有一个修订版的 zip 文件的存储库。你只需要做一个新的克隆。


推荐阅读