Git仍在尝试推送已忽略和已删除的文件

3

我有一个非常大的.framework文件,由于某些原因Git LFS无法正常工作,所以我决定忽略它,以便不被推送。

  1. I added it to my .gitignore.
  2. I ran these 3 commands from Terminal

    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"
    
  3. I confirmed that the .framework is no longer being tracked.

  4. When I try to push the commit again, I still get the error that the file is too large.

    remote: error: GH001: Large files detected. You may want to try Git Large 
    File Storage - https://git-lfs.github.com.
    remote: error: Trace: 6b97634aa8b5de75e8affdcb19d13b98
    remote: error: See http://git.io/iEPt8g for more information.
    remote: error: File path/to/My.framework/Versions/A/My is 101.13 MB;
    this exceeds GitHub's file size limit of 100.00 MB
    
  5. I also deleted the file entirely and it is still attempting to push it.

< p > .framework 并不总是这么大。它最近才变成了>100MB,所以过去可以轻松推送。这里有什么解决方案吗?


现在正在推送大文件还是它已经在存储库中,但删除失败了(我认为这不应该是个问题,但我可以理解混淆的情况)。git show 对当前提交有什么说法? - Etan Reisner
1
你是阻止文件.framework,还是目录My.framework - Makoto
该文件已经在存储库中存在了一段时间,大小约为21MB,但我最近使用启用了“Bitcode”的Xcode 7进行了重建,并且文件大小增长到了106MB。这时候推送失败了。我关闭了“Bitcode”,现在文件大小回到了21MB。但是推送仍然失败。@Makoto 我忽略了“My.framework”目录。 - Kevin_TA
1个回答

1
当您推送时,您不仅会推送一个提交,而是会推送所有远程尚未拥有的提交。我认为您做了这样的事情。
1. Push/pull to be in sync with the remote.
2. Commit the large file.
3. Delete the large file.
4. Push.

现在你正在推送既包含添加大文件的提交,也包含删除它的提交。它们需要被推送。
您可以使用git log --stat origin/master(假设远程是origin,分支是master)检查将要推送的内容。特别是,提交6b97634aa8b5de75e8affdcb19d13b98将是问题所在。
如果是这种情况,您将不得不从历史记录中删除大文件
但考虑到您同时遇到了git-lfs和推送的问题,我认为这里还有其他问题。我怀疑您还缺少另一个大文件。也许您可以展示一下实际的存储库?

感谢澄清。实际上,我通过禁用“位码(Bitcode)”将“.framework”文件大小缩小到了合理的大小(21 MB)。我将其从“.gitignore”中删除,并尝试进行新的提交/推送,但是出现了相同的错误(说它是101.13 MB,即使现在只有21 MB)。你建议我该怎么做? - Kevin_TA
@Kevin_TA 就像我说的那样,你必须从历史记录中删除它。这意味着重写你的提交(而不是创建新的提交),使得它从未存在,因此不需要被推送。有比简单地消除它更微妙的事情,例如为每个历史提交重新生成没有 Bitcode 的提交,以便它变得更小。所有这些都涉及到 git filter-branch,或者如果提交不太多,你可以使用 git rebase -i 手动完成。那是另一个问题。 - Schwern
感谢您的帮助。实际上,我最终创建了一个备份,以保存我想要保留的更改(物理文件),将提交重置为在使用Bitcode构建.framework之前的状态,复制我已更改的文件,然后重新提交并推送。最终解决了问题。 - Kevin_TA
大文件已被删除,那么你如何提交呢? - User

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