为什么这个git浅克隆比我预期的要大?

为什么这个git浅克隆比我预期的要大?,git,Git,我有一个大约24MB大小的repo,但是项目中的文件实际上只有2MB左右。我的印象是,深度为1的浅层克隆几乎可以让我接近2MB的实际文件(无完整repo) 当我进行浅层克隆时,新的repo只显示当前分支,但大小相同(24MB),通过gitx查看repo,我可以看到返回到初始提交的整个历史 我想要一种方法,只获取文件的当前状态(用于上传到服务器),而不需要所有历史记录。我是做错了什么,还是只是误解了肤浅克隆人的目的 git clone --depth 1 repo_url 你应该做你想做的 也

我有一个大约24MB大小的repo,但是项目中的文件实际上只有2MB左右。我的印象是,深度为1的浅层克隆几乎可以让我接近2MB的实际文件(无完整repo)

当我进行浅层克隆时,新的repo只显示当前分支,但大小相同(24MB),通过gitx查看repo,我可以看到返回到初始提交的整个历史

我想要一种方法,只获取文件的当前状态(用于上传到服务器),而不需要所有历史记录。我是做错了什么,还是只是误解了肤浅克隆人的目的

 git clone --depth 1 repo_url
你应该做你想做的


也许你把选项放在回购url之后了?在某些系统上,它们会被忽略。

正如评论中所说,这很奇怪,因为通常不可复制(请参阅)

应工作的命令示例:

$ git clone --depth 1 git://github.com/rails/rails.git shallow
Initialized empty Git repository in /home/me/shallow/.git/

但无论如何,在大型回购中,浅层克隆所获得的收益如果这是本地克隆,那么克隆可能通过将新存储库中的对象硬链接到旧存储库中的对象来运行(这是对本地文件系统的优化)。要查看是否存在这种情况,可以禁用硬链接:

git clone --depth 1 --no-hardlinks /path/to/repo.git

如果您只是试图获取要上载到服务器的文件的当前状态,则应使用生成树的ZIP或tar存档。

我建议这是因为在进行本地克隆时,git会忽略
--深度
,因为它喜欢硬链接。您可以通过使用
file:///home/user/path/to/repo
(即使用文件:///前缀)


这在文档中。

您使用的是什么版本的Git或msysgit?因为这个线程()说:没有回购。我在雪豹上使用1.6.5(来自二进制包)。我在url之前有选项。没有骰子。你可能应该在尝试发布答案之前阅读问题。没有硬链接选项似乎没有任何区别,但“git存档”是完美的。谢谢