100MBを超えるファイルを間違えてコミットしてgit pushできない、、
gitignoreの設定をせずにcommitしていたら、100MBを超えるファイルをコミットしてしまい、 githunにpushができなくなってしまった、、
$ git push Counting objects: 29, done. Delta compression using up to 4 threads. Compressing objects: 100% (24/24), done. Writing objects: 100% (29/29), 36.99 MiB | 1.17 MiB/s, done. Total 29 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), done. remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. remote: error: File example/.terraform/plugins/darwin_amd64/terraform-provider-aws_v2.62.0_x4 is 176.06 MB; this exceeds GitHub's file size limit of 100.00 MB
gitignoreを設定し、以下のコマンドで管理対象から外してもpushすることはできない。
$ git rm --cached example/.terraform/
gitの履歴には残っているのでpush対象から消えるわけではない。 こういう時は、以下のコマンドで履歴から抹消する必要がある。
$ git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \ --prune-empty --tag-name-filter cat -- --all $ git push Counting objects: 28, done. Delta compression using up to 4 threads. Compressing objects: 100% (22/22), done. Writing objects: 100% (28/28), 4.84 KiB | 261.00 KiB/s, done. Total 28 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), done. To github.com:sinozu/terraform-practice.git * [new branch] master -> master
できた!
詳しくはgithunのヘルプに。 help.github.com