4

我在让 Git LFS 正确跟踪我的大文件时遇到问题(此处报告了类似问题:Git LFS 拒绝正确跟踪我的大文件,直到我执行以下操作)。

在我的具体情况下,我试图推送一个由多个子目录组成的目录,每个子目录都有我想要跟踪的特定类型的文件。这些文件类型的扩展名是.bed.Bed.sorted. 这是我遵循的食谱:

我做了git add .,然后git commit -m "initial commit",然后发出了相应的跟踪命令(例如,git lfs track ".bed"),然后做了git push origin master

但是,我仍然收到多个以“ this exceeds GitHub's file size limit of 100.00 MB”结尾的错误命令。我已经阅读了关于这个主题的几乎所有可用的 Stack Overflow 帖子(例如,git lfs 对于大于 100MB 的文件不能正常工作),所以任何建议都将不胜感激。

4

3 回答 3

0

我有完全相同的问题。后来我意识到大文件确实是通过 lfs 上传的,就像显示的 "..skipped..." 一样。但是大文件仍然存在于 git 提交历史中。我如何解决它是使用git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <file/dir>' HEAD(注意你需要用你的大文件的文件名替换)。这将过滤你在历史记录中的大文件记录。在此之后,我可以git push origin master,没有更多的错误。

于 2020-04-20T02:37:11.070 回答
0

如果您必须删除所有缓存的文件,因为您有很多大文件,那么您可以使用:

git rm -r --cached .

确保包含该时间段以表明您希望所有文件都未缓存。

于 2022-03-04T05:26:53.117 回答
0

根据这些说明,首先您需要进行跟踪,然后您可以添加提交。我对 bitbucket 遵循了类似的指令,它起作用了。

当您在track之前添加提交时,您可能是在您的 repo 而不是 lfs repo 中提交。

于 2016-10-21T05:46:25.510 回答