为什么 Bitbucket Server 在本地存储 LFS 对象?
Why is Bibucket Server storing LFS objects locally?
我已经通过 PostgreSQL 数据库成功设置了 Bitbucket 服务器,但是我在 LFS 方面遇到了问题。我都按照this guide做了。起初它似乎可以工作,因为在推或拉时没有错误。问题是 LFS 文件同时存储在我的 repo 本地和服务器上。是什么导致了这个问题?
(这是基于评论的讨论,但我们已经到了我想我明白你在问什么的地步,在进一步的评论中答案可能有点笨拙...)
确实 git LFS 在某些情况下可以减少用于大文件的本地存储,但将其视为主要试图节省不必要的 transfer[ 可能更有用=50=] 大文件,具有减少本地存储的潜在额外好处。
与核心 git 一样,当前签出的所有数据都必须保存在本地[1]。与 core git 不同,您不必保留所有历史记录中使用的文件的本地副本。没有存储库 LFS 存储中大文件的本地副本的两种方法是:
1) 其他人添加了该文件,而您从未检出任何使用它的提交
2) 在签出不依赖于某些文件的内容后,您删除了它们(最好是 运行 git lfs prune
)
LFS 对于它认为您可能在本地需要的内容确实有规则("recent commits"、"recent branches" 等)。这些可以通过配置进行调整。 git lfs 手册页可能比我更清楚 (https://github.com/git-lfs/git-lfs/tree/master/docs/man)。我将从 prune
和 fetch
页面开始。
LFS 不喜欢自动 修剪存储,因为它认为您可能有多个存储库共享一个 LFS 存储并且不想做出假设。
因此,出于这些原因,如果您希望 LFS 释放本地存储空间,那么它可能看起来不起作用。但是如果你有一个包含大文件 和 大历史(深度历史 and/or 许多分支)的现有回购,那么你会发现克隆这样一个回购的时间非常长改进 - 这确实是了解 LFS 想要为您做什么的起点。
总结一下:
如果要释放本地存储,需要告诉lfs修剪本地存储
prune
仍会保留它认为您可能需要的东西(部分取决于您的配置)
当前签出的内容始终保留在本地。
[1]当然无论哪种情况,"locally"都表示"local as far as git knows";如果您真的想将文件存储在别处,您可以使用远程文件系统,但在许多用例中,您可能会发现这只是搬起石头砸自己的脚。
我已经通过 PostgreSQL 数据库成功设置了 Bitbucket 服务器,但是我在 LFS 方面遇到了问题。我都按照this guide做了。起初它似乎可以工作,因为在推或拉时没有错误。问题是 LFS 文件同时存储在我的 repo 本地和服务器上。是什么导致了这个问题?
(这是基于评论的讨论,但我们已经到了我想我明白你在问什么的地步,在进一步的评论中答案可能有点笨拙...)
确实 git LFS 在某些情况下可以减少用于大文件的本地存储,但将其视为主要试图节省不必要的 transfer[ 可能更有用=50=] 大文件,具有减少本地存储的潜在额外好处。
与核心 git 一样,当前签出的所有数据都必须保存在本地[1]。与 core git 不同,您不必保留所有历史记录中使用的文件的本地副本。没有存储库 LFS 存储中大文件的本地副本的两种方法是:
1) 其他人添加了该文件,而您从未检出任何使用它的提交
2) 在签出不依赖于某些文件的内容后,您删除了它们(最好是 运行 git lfs prune
)
LFS 对于它认为您可能在本地需要的内容确实有规则("recent commits"、"recent branches" 等)。这些可以通过配置进行调整。 git lfs 手册页可能比我更清楚 (https://github.com/git-lfs/git-lfs/tree/master/docs/man)。我将从 prune
和 fetch
页面开始。
LFS 不喜欢自动 修剪存储,因为它认为您可能有多个存储库共享一个 LFS 存储并且不想做出假设。
因此,出于这些原因,如果您希望 LFS 释放本地存储空间,那么它可能看起来不起作用。但是如果你有一个包含大文件 和 大历史(深度历史 and/or 许多分支)的现有回购,那么你会发现克隆这样一个回购的时间非常长改进 - 这确实是了解 LFS 想要为您做什么的起点。
总结一下:
如果要释放本地存储,需要告诉lfs修剪本地存储
prune
仍会保留它认为您可能需要的东西(部分取决于您的配置)当前签出的内容始终保留在本地。
[1]当然无论哪种情况,"locally"都表示"local as far as git knows";如果您真的想将文件存储在别处,您可以使用远程文件系统,但在许多用例中,您可能会发现这只是搬起石头砸自己的脚。