代码之家  ›  专栏  ›  技术社区  ›  Mornor

Git删除大文件-找不到文件[重复]

  •  1
  • Mornor  · 技术社区  · 6 年前

    我想把我的 .git 去Github。

    git push origin master
    [...]
    remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
    remote: error: Trace: fc1cc7aed3765ca1e847dee4b7fc831f
    remote: error: See http://git.io/iEPt8g for more information.
    remote: error: File .terraform/plugins/darwin_amd64/terraform-provider-aws_v1.41.0_x4 is 107.37 MB; this exceeds GitHub's file size limit of 100.00 MB
    To [example].git
     ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'git@[example.git].git'
    

    这告诉我

    .terraform/plugins/darwin_amd64/terraform-provider-aws_v1.41.0_x4 
    

    太大了。

    很公平:

    rm -rf .terraform/
    git rm -rf .terraform/
    git rm -rf --cached .terraform/
    

    它给予

    git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
        deleted:    .terraform/plugins/darwin_amd64/lock.json
        deleted:    .terraform/plugins/darwin_amd64/terraform-provider-aws_v1.41.0_x4
    

    所以,似乎没事。

    然而,当我再推一次的时候(在提交之后),我得到了和一开始完全一样的问题。

    但这次我没有了 .terraform ,也不在我的 .吉特 也不在我的本地文件夹中。

    是什么导致了这个问题,我应该如何解决?
    我怀疑有一些git历史需要重新编写,但不确定。感谢您的帮助!

    编辑 不,另一个答案对我的案子没有帮助。
    请看下面我的回答。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Arpit Aggarwal    6 年前

    这是因为你试图推动的承诺仍然知道 .terraform/ 为了避免放弃执行命令的最后一次提交:

    git reset --hard HEAD~1
    

    然后在删除后创建新的提交 .地形/ 从git历史记录并将其推送到Github。

        2
  •  1
  •   Mornor    6 年前

    正如@Croolman指出的,下面的命令修复了我的问题:
    git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch .terraform/'