git - git 会复制我所有的文件吗?

标签 git backup-strategies

我正在尝试使用 git 在网站上实现一个新的备份系统。虚拟专用服务器共有 20GB 空间,其中 5GB 可用。

当我在 /var/www 运行 git add . 时(使用我最喜欢的 .gitignore 参数)我有一个巨大的 git 文件夹使我的硬盘容量达到极限。

目前还不清楚为什么会发生这种情况,因为我希望 .git 目录包含有关位的位(元信息)而不是我所有文件的二进制副本!

这是怎么回事?如果我的网站是 14GB,.git 目录会额外占用 14GB 吗?

最佳答案

使用的空间等于 GIT_DIR + GIT_WORK_TREE

If my website is 14GB will the .git directory occupy an additional 14 gb?

为了极大地简化案例,是的。在非裸存储库中,Git 将所有跟踪的文件 blob 以及其他存储库对象(例如树和提交)存储在 GIT_DIR 下。它还在 GIT_WORK_TREE 中维护副本。

存储库使用 packfiles 和 deltification 来防止这种情况在正常用例中失控,但如果您在非裸存储库中有 14GB 以上的数据——尤其是如果这些文件中有很多是二进制的 Assets ——那么您很可能会加倍(或更糟)磁盘使用量。

关于git - git 会复制我所有的文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605290/

相关文章:

PowerShell SQL 作业步骤移动项目在 1 台服务器上不起作用

xcode - 如何获取 Xcode Bot "Run Script"触发器的提交 SHA?在 Github 上更新测试状态

git - 删除 git repo 中所有以前版本的文件

backup - 您如何处理 TB 级数据的异地备份?

amazon-web-services - 自动从 S3 中删除旧备份并每月移动到冰川

备份/恢复 Kubernetes 的当前状态(Namespaces/Pods/Controllers/etc)

linux - git log 不显示所有项目的任何内容

git - 如果在未来提交中发生比重命名更名的更改,是否可以在 git 中 merge 重命名?

Git 错误 : RPC failed; result=52, HTTP 代码 = 0

azure - 用备份替换 azure 数据库