如何使用 LFS 正确上传 200MB 文件到 GitHub

cla*_*sol 5 git neo4j git-lfs

到目前为止,我已经花了很多时间尝试使用 LFS 从命令行将 Neo4j 数据库上传到 GitHub。git init第一次创建本地存储库并提交后,我在推送时遇到了麻烦。

如果我没记错的话,只有一个超过100MB的文件,数据库核心文件之一。因此,由于只有一个大文件,我使用了该命令(路径中git lfs track "/data/databases/graph.db/neostore.transaction.db.0"带有或不带有首字母)。/我也尝试过.gitattributesgit lfs track "*.db"git lfs track "/data/databases/graph.db/*"手动版本,但这些方法都不起作用。错误如下:

命令错误

尽管有说明,但 LFS 似乎没有上传该文件。我的 LFS 版本是 2.7.2,所以这不是过时的版本。我缺少什么?

bk2*_*204 6

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

为了解决这个问题,您需要重写历史记录。您可以使用git lfs migrate import这样做,如下所示:

git lfs migrate import --everything --include="*.db.0"
Run Code Online (Sandbox Code Playgroud)

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

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