重复的文件会增加git repo的大小吗?

时间:2019-03-22 14:08:52

标签: git

如果我在各个目录中都有多个文件,文件名不同,但内容完全相同...每个重复项都会增加回购大小,还是将它们存储为“一个”文件?

例如,如果文件为100 kB,并且在存储库中重复了10次(相同的内容,不同的目录,不同的文件名)。存储库是100 kB还是1000 kB


注意: 本人可以对此进行半测试,并且如果我仔细阅读了本书中的较长答案,似乎可以找到答案了。链接可能的重复项。但是,我想从知道他们在说什么的人那里获得快速,简短而明确的答案,并且希望它成为Google搜索的第一个结果。不知道是不是那样,但是当我在寻找这个问题的答案时,我的搜索结果中肯定没有立即明确的答案。

2 个答案:

答案 0 :(得分:5)

不..... git仅保存一次内容 ,然后它将根据需要多次指向它。...因此,如果您将100x相同的内容命名为不同的名称/路径,文件将被保存一次,然后您将有100个指向它的指针。

答案 1 :(得分:1)

您可以使用git rev-list --objects --all显示数据库中存储的所有对象。如果文件are part of the same pack,重复的文件内容将仅显示一次。

例如,在具有相同的a.txtb.txt的新存储库中,首先在两个单独的提交a.txt中进行提交:

$ md5sum *.txt
3ac628079d9cf781d155c26dabaade91  a.txt
3ac628079d9cf781d155c26dabaade91  b.txt

$ git rev-list --objects --all
f0b4bdc93a65012069d6e96d54624a34ee1d1552
9f8a9ceb3b5f22e67b86b6d57837def070802baf
a19cc397dae6a39fc4f9fbdbd4bf9da05c00bef0 
d05accac53d462a927e7787edee5fb97db24c386 a.txt
d5bc7e22610744c7717f65d3ec60957583469857