this exceeds GitHub's file size limit of 100.00 MBが出たときの対応

GitHubpushしようとしたときに以下のエラーが出ることがあります。

this exceeds GitHub's file size limit of 100.00 MB

100MB以上のファイルをpushしようとしているのが原因です。
GitHubでは100MB以上のファイルを扱うことができません。

状況によって対応方法が変わってきます。

100MB以上のファイルをgitの管理からはずしても問題ない場合

100MB以上のファイルをコミットから除去することで解決できます。
以下のコマンドで100MB以上のファイルのコミットを確認することができます。

git log -p XXXX(対象ファイル名)

対象コミットによって対応方法が変わります。

対象のコミットが直前のコミットのとき

--amendというコマンドを利用することで直前のコミットに変更を加えることができます。
↓のサイトに書かれている手順に従ってください。
これ以上説明することがありません。 qiita.com

対象のコミットが2つ以上前のコミットのとき

--amendコマンドが直前のコミットしか変更できないので、rebaseを使用します。

対象コミットが何個前にあるかを確認します。

$ git log --oneline

01d06e1 7章の修正
14dc8dd 7章resultファイル
d0f15a6 7章ソースコード一通り
9735ec4 6章一通り

今回は「6章一通り」と書かれたコミットが100MB以上のファイルを含んでいるとします。
この場合修正したいコミットは4つ前なので、4つ分rebaseを行います。

git rebase -i HEAD~4

するとファイルが開かれると思います。
修正を加えたいコミットのpickeに書き換えて保存してください。
↓のようになります。

e a75c554 6章一通り
pick b0a30e5 7章ソースコード一通り
pick 0f61aa3 7章resultファイル
pick eec0ec3 7章の修正

# Rebase ac2e739..817b252 onto ac2e739 (5 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

↓のようなログがでたら成功です。

Checking out files: 100% (38/38), done.
Stopped at 9735ec4...  6章一通りStopped at 9735ec4...  6章一通り
You can amend the commit now, withYou can amend the commit now, with

  git commit --amend   git commit --amend 

Once you are satisfied with your changes, runOnce you are satisfied with your changes, run

  git rebase --continue  git rebase --continue

これで、--amendを使ってコミットの修正ができるようになりました。 対象ファイルをgitコミットから除去します。

$ git rm --cached XXXX(対象ファイル名)

--amendを使ってコミットに変更を加えます。

$ git commit --amend -CHEAD

rebaseを完了させます。

git rebase --continue

以上で100MB以上のファイルをコミットから取り除くことができました。
pushしてみてください!

git push
gitignore

さらに、今後同じ過ちを犯さないように↓のコマンドを実行して,.gitignoreに100MB以上のファイルを追加しておくことをおすすめします。

$ find . -size +100M | sed -e 's/^\.\///' >> .gitignore

100MB以上のファイルをgitでどうしても管理したい場合

Git Large File Strage (LFS)というものがあります。 1GB/月 の帯域を無料で利用できます。
それ以降は課金が必要で、5.00USDで50GB/月 の帯域が購入できます。
↓のサイトの手順に従ってください! qiita.com