GitHubに重いファイルをPushするとエラー!【解決策はGitLFS】

サムネイル
               

 

GitHubにPushすると重いファイルがあるとエラーが吐かれる問題を解決しましたので、健忘録としてブログに残しておきます。

 

Next.jsを学ぶためにyarnを使ってインストールしましたが、その中に100MBを超えるファイルがありPushできませんでした。

 

ローカルで削除しても、コマンドプロンプトで削除しても何度トライしてもエラーに

 

 

 

約5日間試行錯誤して、なんとかPushできましたので、参考になれば幸いです。

 

GitHubに重いファイルをPushするとエラー!【解決策はGitLFS】

GitHubに重いファイルをPushするとエラー

 

GitHubにPushすると↓のようにエラーが吐かれます。

C:\Users\yuduk\react-manabi>git push origin main

Uploading LFS objects: 100% (1/1), 123 MB | 5.5 MB/s, done.

Enumerating objects: 551, done. Counting objects: 100% (551/551), done.

Delta compression using up to 12 threads

Compressing objects: 100% (535/535), done.

Writing objects: 100% (551/551), 105.26 MiB | 2.84 MiB/s, done.

Total 551 (delta 6), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (6/6), done.

remote: error: Trace:

5b82840db93633468a349cfc98f52efbf874e903f8b53b73647859f0ba171928

remote: error: See https://gh.io/lfs for more information.

remote: error: File .yarn/unplugged/@next-swc-win32-x64-msvc-npm-14.1.4-8a05d41299/node_modules/@next/swc-win32-x64-msvc/next-swc.win32-x64-msvc.node is 117.67 MB; this exceeds GitHub's file size limit of 100.00 MB

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.

To https://github.com/moridai1104/react-manabi.git ! [remote rejected] main -> main (pre-receive hook declined) 
error: failed to push some refs to 'https://github.com/moridai1104/react-manabi.git'

 

 

どうやら

remote: error: File .yarn/unplugged/@next-swc-win32-x64-msvc-npm-14.1.4-8a05d41299/node_modules/@next/swc-win32-x64-msvc/next-swc.win32-x64-msvc.node is 117.67 MB; this exceeds GitHub's file size limit of 100.00 MB

が容量オーバーのようでPushできないようですね。GitHubにPushできるのは100MBまでのようでした。

 

大きなファイルを管理するにはGit Large File Storage (LFS) です。大きなファイルを効率的に管理するためのGitの拡張機能になっています。

 

 

GitLFSを導入

Git LFSをインストールします。

リポジトリでGit LFSを初期化します。

git lfs install

大きなファイルをGit LFSで追加します。

git lfs track "<ファイルのパス>"

↑↑↑私の場合は「next-swc.win32-x64-msvc.node」なのでgit lfs track "*.node"にしています。

変更をステージングし、コミットします。

git add .
git commit -m "Add large file using Git LFS"

リポジトリにプッシュします。

git push origin main

 

でも、まだエラーが吐かれること多いと思います。

C:\Users\yuduk\react-manabi>git push origin main 
Uploading LFS objects: 0% (0/1), 0 B | 0 B/s, done. 
batch response: This repository is over its data quota. 
Account responsible for LFS bandwidth should purchase more data packs to restore access. 
error: failed to push some refs to 'https://github.com/moridai1104/react-manabi.git'

 

LFS化に失敗しているファイルが確認していきます。

git lfs migrate info

ざらざらと長く表示されると思います。

次に過去のコミットもLFSとして書き換えてくれます。

git lfs migrate import

これで再度Pushするとできるはずです!