没有本地存储库的Git

OJW*_*OJW 6 git

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

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

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

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

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

jjm*_*elo 5

根据您的想法,这些答案可能会为您提供线索浏览并在没有克隆的情况下在git仓库中显示文件.一般来说,有几个解决方案

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


Dan*_*rth 1

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

你无法改变这一点。