6

考虑(例如)20GB 目录存储在具有 20.1GB 可用磁盘空间的计算机上的情况,并且我们希望将此目录置于修订控制之下。服务器可用于存储修订历史。

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

然而,在 git (git init .; git add .; git commit) 中尝试这个需要我们在本地存储完整的历史记录。随着定期更改(假设无法很好地压缩的大型二进制文件),.git 目录会增长,直到它不适合磁盘。

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

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

4

2 回答 2

7

根据您想要做什么,这些答案可能会给您一个线索Browse and display files in a git repo without cloning。一般来说,有几种解决方案

  • 如果您具有 ssh 访问权限,则使用远程副本。
  • 使用访问 API,例如 GitHub 提供的 API。
  • 使用“浅克隆”:git clone --depth=1
于 2015-02-15T08:39:23.857 回答
1

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

你无法改变这一点。

于 2013-01-24T12:44:22.030 回答