考虑这样一种情况:例如,一个20GB目录存储在一台没有20.1GB磁盘空间的计算机上,我们希望将该目录置于版本控制之下。服务器可用于存储修订历史记录。
在subversion中,我们从服务器检出一个空目录,添加文件并提交它。这将创建与工作目录大小相同的.svn目录,以便它可以检测更改并创建差异。在进行常规更改时,.svn目录的大小不会随着时间的推移而发生变化。
但是,在git(git init .; git add .; git commit)中尝试此操作需要我们在本地存储完整的历史记录。随着常规更改(假设大型二进制文件不能很好地压缩),.git目录会增长,直到它不适合磁盘。
有没有办法操作git,以便它不会在本地存储完整的历史记录;这样它只保存有关您正在处理的分支的提示的数据,并在每次需要有关历史修订或其他分支的信息时查询远程服务器?
注意:我知道.git目录的压缩效果更好,你可以在大于.svn目录之前进行大量的修改 - 问题是它会随着时间的推移而增长,而.svn则没有。吨
答案 0 :(得分:5)
根据您的目的,这些答案可能会为您提供线索Browse and display files in a git repo without cloning。一般来说,有几个解决方案
git clone --depth=1
答案 1 :(得分:1)
GIT是一个分布式CVS。这种DCVS的核心是它们在本地存储它们的历史。
你不能改变它。