没有本地存储库的 Git

标签 git

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

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

但是,在 git 中尝试此操作(git init .; git add .; git commit)需要我们在本地存储完整的历史记录。随着定期更改(假设压缩效果不佳的大型二进制文件),.git 目录会不断增长,直到无法容纳在磁盘上。

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

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

最佳答案

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

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

关于没有本地存储库的 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501631/

相关文章:

Cygwin 下的 Git Clone 挂了

php - 在apache服务器上通过php执行bash文件

Git merge 分支之间的提交

android - 尽管删除 git 子模块仍出现 "detached HEAD"错误

git - 如果 git-am 失败并显示 “does not exist in index” 怎么办?

git - 如何在没有历史记录的情况下 fork Git 存储库的子集?

git - 从 git bundle 获取所有分支

xcode - 如何使用 Xcode 添加 README.md 文件?

git - 我会用 git-worktree 做什么?

git - 如何使用git进行文件同步?