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

Git仍在尝试推送被忽略和删除的文件,git,github,Git,Github,我有一个相当大的.framework文件,由于某些原因,Git LFS不能正常工作,所以我决定忽略它,这样它就不会被推送 我把它添加到我的.gitignore 我从终端运行了这3个命令 git rm -r --cached . git add . git commit -m "fixed untracked files" 我确认不再跟踪.framework 当我再次尝试推送提交时,仍然会出现文件太大的错误 remote: error: GH001: Large files detected.

我有一个相当大的
.framework
文件,由于某些原因,Git LFS不能正常工作,所以我决定忽略它,这样它就不会被推送

  • 我把它添加到我的
    .gitignore
  • 我从终端运行了这3个命令

    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"
    
  • 我确认不再跟踪
    .framework

  • 当我再次尝试推送提交时,仍然会出现文件太大的错误

    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
    
  • 我还完全删除了该文件,它仍在尝试推送它


  • .framework
    并不总是那么大。它最近才变成>100MB,所以过去推送时没有问题。这里有什么解决方案吗?

    当您推送时,您不仅推送一次提交,还推送远程设备尚未完成的所有提交。我想你是做了这样的事

    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和Push方面都遇到了麻烦,我认为这里还发生了其他一些事情。我怀疑你又丢失了一个大文件。也许您可以显示您的实际存储库?

    是现在正在推送的大文件,还是它已经在存储库中并且删除失败了(我认为这应该不是一个问题,但我可能会看到一些混乱)。git show对当前提交有何评论?您是在阻止文件
    .framework
    ,还是阻止目录
    My.framework
    ?该文件在存储库中已经存在了一段时间,大约21MB,但我最近使用Xcode 7(启用了
    位代码
    )重新构建了它,它的大小增加到了106MB。这是推送开始失败的时候。我禁用了
    Bitcode
    ,现在它的大小又回到了21MB。然而,推动仍然失败@Makoto我忽略了目录
    My.framework
    。感谢您的澄清。实际上,我通过禁用
    位代码
    ,将
    .framework
    恢复到了合理的大小(21MB)。我从
    .gitignore
    中删除了它,并尝试了一个新的提交/推送,但得到了相同的错误(说它是101.13 MB,尽管现在只有21 MB)。你建议我做什么?@Kevin_TA就像我说的,你必须这么做。这意味着重写您的提交(而不是创建新的提交),使其不存在,因此不需要推送。除了简单地删除它,您还可以做更多细微的事情,比如每次历史提交都要在不使用位代码的情况下重新生成它,这样它会变得更小。这些都涉及到
    git过滤器分支
    ,或者如果没有太多的提交,您可以使用
    git-rebase-i
    手动完成。那是另一个问题。谢谢你的帮助。实际上,我最终备份了我想要保留的更改(物理文件),在我用
    位代码构建
    .framework
    之前重置提交,复制了我更改的文件,然后重新提交并推送。终于成功了。这个大文件被删除了,你怎么提交呢?