GitHubでは100MB以上のファイルがコミットに含まれている状態でプッシュすると、エラーが出て正常にプッシュできないように制限がかかっています。
リポジトリのサイズはなるべく小さくなるように推奨されていますので、基本的には.gitignoreでファイルを除外する方法で解決すれば良いです。
それでも、100MB以上のファイルをプッシュしたいというケースもありますよね。その場合は、Git LFS(Git Large File Storage)を導入する必要があります。
そこで今回は、Git LFSを導入して100MB以上のファイルもプッシュできるようにする方法をご紹介したいと思います。
Git LFSを利用する場合の注意点
Git LFSを利用すればいくらでもファイルがプッシュできるかというと、そういうわけではありません。
ストレージ:1GB
帯域:1GB/月
の制限があります。この点は注意が必要です。
「Git LFSを使えば重いファイルもGitで管理できるぞー!」と意気揚々と大きいサイズの動画なども含めてコミット/プッシュしていたら、すぐに「利用可能な容量の80%が使用されました」とメールがきました…そう甘くはありませんね。
5ドル/月を支払って有料プランに移行することで、
ストレージ:50GB
帯域:50GB/月
にストレージと帯域を増加させることはできますが、有料版でも無制限ではありません。
なお、LFSで使用しているストレージ容量は、GitHubの[Settings] – [Billing and plans] – [Plans and usage]の「Git LFS Data」で確認できます。

リポジトリを削除したら、しばらくするとLFSのストレージ使用量は解放されます。動画を複数プッシュしたことで使用料が85%に達してしまっていたので、一旦リポジトリを削除しました。
GitHubに100MB以上のファイルをプッシュする方法
ステップ1. Git LFSのインストール
まずは公式サイトからGit LFSをダウンロードしてインストールします。Git LFSのインストールについては、下記をご参照ください。
参考:Git Large File Storage をインストールする
ステップ2. Git LFSで追跡するファイルの種類を指定
GUIはSourceTreeを使います。
リポジトリを開いて[リポジトリ] – [Git LFS] – [リポジトリを初期化]を選択します。

続いて、[Git LFSを利用する]をクリックします。

「*.mp4」や「*.pdf」など、大きいサイズのファイルの種類を追加します。

これで、追加された拡張子のファイルはGit LFSで追跡されるようになり、100MB以上のファイルもプッシュできるようになります。
あとがき
Web制作の現場では、100MBを超えるファイルを扱う機会はあまりありませんが、たまに支給された動画ファイルが100MBを超えていることがありますね。(そもそも動画を圧縮してサイズを軽減した方が良いのでは…とは思いますが)
そういう時は、Git LFSで追跡するようにすれば、簡単にGitHubにもプッシュできるようになります。100MB以上のファイルをプッシュしたい時は、ぜひ参考にしていただければ幸いです。