如何使用LFS将一个200MB的文件正确地上传到GitHub?

5

我已经花费很多时间尝试通过LFS从命令行将Neo4j数据库上传到GitHub。在使用git init创建本地存储库并第一次提交后,我在推送方面遇到了问题。

如果我没记错的话,只有一个文件大小超过100MB,这是数据库核心文件之一。因此,由于只有一个巨大的文件,我使用了命令git lfs track "/data/databases/graph.db/neostore.transaction.db.0"(在路径中带和不带初始的/)。我也尝试过git lfs track "*.db"git lfs track "/data/databases/graph.db/*"以及手动编辑.gitattributes,但这些方法都没有起作用。错误如下:

CMD error

尽管有上传该文件的指令,但LFS似乎没有上传它。我的LFS版本为2.7.2,所以这不是关于版本过时的问题。我缺少了什么?

1个回答

6

虽然您可能已经在Git LFS中将 master 分支更新为跟踪最新修订版本中的大文件,但很可能仍存在包含大文件作为普通Git对象的历史记录。GitHub不允许您在历史记录中上传任何大于100MB的blob。

为了解决这个问题,您需要重写历史记录。您可以使用 git lfs migrate import 来完成此操作,方法如下:

git lfs migrate import --everything --include="*.db.0"

这将重写整个项目的历史记录,包括所有分支和标签,以便在所有版本中该文件都是Git LFS文件。您可以在手册页面中查看可用的配置选项。

需要注意的是,即使使用Git LFS,Git通常也不是处理编译、构建类资产(如数据库)的好工具。一般建议如果需要数据库内容(例如测试),应该在存储库中包含数据库的源格式,并且如果必要,则在构建或测试步骤中构建数据库本身。这样做可能会使您的文件变得足够小,不需要使用Git LFS。


1
虽然我还得解决一些额外的问题,但最终它还是起作用了。感谢你的建议! - clanofsol
这对我有用。非常感谢 :) - Misaal D'souza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接