エラー内容
iOSアプリ開発最中に、RalmSwift
というデータベース系のライブラリを追加し、Gitにプッシュしようとしたら、以下のようなエラーが表示されました。
remote: warning: File Pods/Realm/core/realm-monorepo.xcframework/watchos-armv7k_arm64_32/librealm-monorepo.a is 74.45 MB; this is larger than GitHub’s recommended maximum file size of 50.00 MB remote: warning: File Pods/Realm/core/realm-monorepo.xcframework/ios-arm64_x86_64_i386-simulator/librealm-monorepo.a is 67.05 MB; this is larger than GitHub’s recommended maximum file size of 50.00 MB remote: warning: File Pods/Realm/core/realm-monorepo.xcframework/tvos-arm64_x86_64-simulator/librealm-monorepo.a is 52.83 MB; this is larger than GitHub’s recommended maximum file size of 50.00 MB remote: warning: File Pods/Realm/core/realm-monorepo.xcframework/ios-armv7_arm64/librealm-monorepo.a is 76.24 MB; this is larger than GitHub’s recommended maximum file size of 50.00 MB remote: error: Trace: f8403a2036ed669d07c637dfa05eec66e6ae949d174c224232552f24bb00e03b remote: error: See http://git.io/iEPt8g for more information. remote: error: File Pods/Realm/core/realm-monorepo.xcframework/watchos-arm64_i386_x86_64-simulator/librealm-monorepo.a is 114.50 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/RikutoSato/Sample.git ! [remote rejected] main -> main (pre-receive hook declined) error: failed to push some refs to ‘https://github.com/RikutoSato/Sample.git’
原因
プッシュしようとしているプロジェクト内に、100MBを超えるファイルがあるため、エラーになっています。Githubは、100MBを超えるファイルはアップロードできません。
warningは、50MBを超えているので、今後100MBを超える可能性がありますというのを教えてくれています。
今回RealmSwiftを入れたことで、エラーになっているのは、Pods/Realm/core/realm-monorepo.xcframework/watchos-arm64_i386_x86_64-simulator/librealm-monorepo.a
の一件です。
おそらく、simulatorと書いているので、必要ないかと思うので、削除しようと思います。
解決方法
今回は、100MBを超えるファイルは必要ないファイルだったため、単純にファイルを削除し、再プッシュしようと思います。
まず、コミットする前の状態に戻します。以下のコマンドを打って一つ前のコミットIDをコピーしてください。
git log
以下のコマンドを打ってコミット状態を戻します。コミットIDのところに先ほどコピーしたコミットIDをペーストしてください。
git reset --soft コミットID
以下のコマンドを打って、100MBを超えるファイルのパスを割り出します。
find . -size +100M -ls
100MBを越えているファイルを、コミット対象から除外します。複数ある場合は、すべて行なってください。
git reset ./Pods/Realm/core/realm-monorepo.xcframework/watchos-arm64_i386_x86_64-simulator/librealm-monorepo.a
今回は、必要のないファイルだったため削除します。
rm ./Pods/Realm/core/realm-monorepo.xcframework/watchos-arm64_i386_x86_64-simulator/librealm-monorepo.a
remove [path]?
と聞かれたら、y
と打ってEnterを押してください。
あとは、いつも通り、コミットしてください。
これで、コミットできたかと思います。