LoginSignup
4
4

More than 3 years have passed since last update.

GitHubに100MB超えのファイルをプッシュしてエラーになった

Posted at

Railsアプリを開発中に、GitHubにプッシュできなくなりました。
GitHubに100MB制限があることを知らず、少し苦戦しましたので備忘録として。

エラー

いつもどおり、git add git comit git push と進めるとエラーが出ました。
development.logが100MBを超えてますよ、ということです。

・・・
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 13ec04b062a0cd9bb1a20e6a0b921ec7cf7396c0
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File log/development.log is 150.13 MB; this exceeds GitHub's file size limit of 100.00 MB
・・・

100MB超ファイルをアップする方法もあるようですが、今回はLogファイルだったので削除する方針で進めます。

100MB超ファイルをプッシュする方法(参考)
https://qiita.com/kanaya/items/ad52f25da32cb5aa19e6

解決手順

  1. 巨大ファイルのコミットを取り消す
  2. 巨大ファイルを削除(Gitから除外)
  3. 再度コミット
  4. 再度プッシュ

1.巨大ファイルのコミットを取り消す

直前のコミットであればこれで取り消せます。


$ git reset --hard HEAD

直前ではないときは、該当するリビジョンを調べてその1個前まで戻ります。

$ git log
コミット履歴がズラッと出るので、該当リビジョンを確認

commit 13ec04b062a0cd9bb1a20e6a0b921ec7cf7396c0
↑これが該当リビジョンの1個前

$ git reset --soft 13ec04b062a0cd9bb1a20e6a0b921ec7cf7396c0

これで巨大ファイルのコミットの前に戻りました。

2.巨大ファイルを削除(Gitから除外)

単純に巨大ファイルを削除(中身を空に)してもよいのですが、Railsの仕様上いずれまた100MBを超えることになるのでGitから除外します。

.gitignoreでGitから除外する

.gitignoreに除外ファイルを追加します。

.gitignore
/log/development.log

.gitignore 書き方(参考)
https://qiita.com/inabe49/items/16ee3d9d1ce68daa9fff

最初から除外したほうが楽
このツールで、各言語に最適化された.gitignoreがゲットできます。
https://www.toptal.com/developers/gitignore

3.再度コミット

あとはいつもどおりと言いたいところですが、ちゃんと除外されているか確認しましょう。
自分はここで何度もやり直しました。

除外してもコミットされてしまうときは

Gitのキャッシュが残っている場合は、こちらを参考にキャッシュを削除してください。
(ちなみにVS CODEだと、除外ファイルはグレーアウトされます。)
https://qiita.com/fuwamaki/items/3ed021163e50beab7154

4.再度プッシュ

最後にプッシュすればコンプリートです!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4