考虑(例如)20GB 目录存储在具有 20.1GB 可用磁盘空间的计算机上的情况,并且我们希望将此目录置于修订控制之下。服务器可用于存储修订历史。
在 subversion 中,我们从服务器签出一个空目录,添加文件并提交它。这将创建与工作目录大小大致相同的 .svn 目录,以便它可以检测更改并创建差异。当您进行定期更改时,.svn 目录的大小不会随着时间而改变。
然而,在 git (git init .; git add .; git commit) 中尝试这个需要我们在本地存储完整的历史记录。随着定期更改(假设无法很好地压缩的大型二进制文件),.git 目录会增长,直到它不适合磁盘。
有没有办法操作 git 以便它不会在本地存储完整的历史记录;以便它只保留有关您正在处理的分支尖端的数据,并在每次需要有关历史修订或其他分支的信息时查询远程服务器?
注意:我知道 .git 目录的压缩效果更好,您可以在它比 .svn 目录大之前进行大量修改 - 问题是它会随着时间的推移而增长,而 .svn 不会