没有本地存储库的Git

时间:2013-01-24 12:41:23

标签: git

考虑这样一种情况:例如,一个20GB目录存储在一台没有20.1GB磁盘空间的计算机上,我们希望将该目录置于版本控制之下。服务器可用于存储修订历史记录。

在subversion中,我们从服务器检出一个空目录,添加文件并提交它。这将创建与工作目录大小相同的.svn目录,以便它可以检测更改并创建差异。在进行常规更改时,.svn目录的大小不会随着时间的推移而发生变化。

但是,在git(git init .; git add .; git commit)中尝试此操作需要我们在本地存储完整的历史记录。随着常规更改(假设大型二进制文件不能很好地压缩),.git目录会增长,直到它不适合磁盘。

有没有办法操作git,以便它不会在本地存储完整的历史记录;这样它只保存有关您正在处理的分支的提示的数据,并在每次需要有关历史修订或其他分支的信息时查询远程服务器?

注意:我知道.git目录的压缩效果更好,你可以在大于.svn目录之前进行大量的修改 - 问题是它会随着时间的推移而增长,而.svn则没有。吨

2 个答案:

答案 0 :(得分:5)

根据您的目的,这些答案可能会为您提供线索Browse and display files in a git repo without cloning。一般来说,有几个解决方案

  • 如果您具有ssh访问权限,则使用远程副本。
  • 使用GitHub提供的访问API。
  • 使用“浅层克隆”:git clone --depth=1

答案 1 :(得分:1)

GIT是一个分布式CVS。这种DCVS的核心是它们在本地存储它们的历史。

你不能改变它。