こんにちは、なかしんです。前回『Beach of the Dead』(以下BOTD)のクローンを取ってからの話です。今回は、それを複製して新レポジトリGOLDを作ろうと思います。
ゲーム再開発宣言をしてから、進んだのはたったこれだけです。今回の開発はこれくらいのペースで進んでいくことをお知らせします。
というのも作業のウエイトは、
- 副業の不労所得マシーン構築(85%)
- 本業の旅ブロガー(10%)
- 趣味のゲーム開発(5%)
なのです。あしからず。
さて今日は、自分のUnityプロジェクトをGitHubにアップしようとして、何度もPushエラーに苦しんだ末、やっと成功した話を記録しておきます。
🔧 やったことの流れ
1. 既存プロジェクト【BOTD】をGitHubからクローン
2. ローカルで複製し、名前を【BOTD_copy】に変更
3. GitHub上で新たに【GOLD】というレポジトリを作成
4. それをローカルにクローンし、~/naka/GAME/GOLD に配置
5. 中身を【BOTD_copy】で置き換え、GOLDに移植完了
6. コミットしてプッシュしようとしたが……
🚨 エラー地獄の始まり
最初に出たのはこのエラー:
error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
GitHubがアップロード中に接続を切断してしまうエラーです。
Unityのプロジェクトはサイズが大きいため、こういったことがよく起きます。
🕵️ 原因を調査したところ…
ローカルで調べてみたら、以下のような大容量フォルダがPushの邪魔をしていました:
457M Build
2.9G Assets
77M Library
GitHubのPush制限(概ね2GB以下推奨)を余裕で超えていたのが原因でした。
忘れていたんだよね、不要なデータはコミットしない様にしていたことを。しかし数年経てばそんな事すら忘れてしまいます。人間だもの。
✅ 解決までの道のり(要点)
① .gitignore をちゃんと設定(Unity用)
Library/
Temp/
obj/
Build/
Logs/
UserSettings/
MemoryCaptures/
Assets/
② 一度コミットしてしまった不要フォルダを削除
git rm -r –cached Build Assets
git commit -m “remove Build and Assets from repo for push success”
③ Gitの履歴ごと不要フォルダを完全に削除(git-filter-repo)
brew install git-filter-repo
git filter-repo –force –path Build –invert-paths
git filter-repo –force –path Assets –invert-paths
④ origin(GitHub URL)が消えたので再登録
git remote add origin https://github.com/oknaka/GOLD.git
⑤ 最終Push(強制)
git push -f origin main
🏁 結果:Push成功!
GitHub上のGOLDレポジトリに、スッキリ軽量化されたプロジェクトが無事反映されました。
本当に長い戦いでしたが、最大のポイントは「いかに無駄なものを除外するか」でした。
💡 学んだこと
- UnityプロジェクトはそのままPushすると高確率で失敗する
- .gitignoreは最初にちゃんと設定しよう
- git filter-repo は「過去のミスも消す」最終兵器
- Pushに失敗したら、まずプロジェクトの容量を疑うべし
✍️ まとめ
Pushできないエラーは、初心者でもベテランでもハマるものです。知らんけど。でも、正しく削って整えてからPushすれば、必ず成功します。
これから同じように困ってる人の助けになれば嬉しいです。
以上、なかしんのPush地獄脱出ログでした🔥
Gold開発
【Gold 開発記録 Ep04】GitHubにPushできないと思ったら〜、そもそもGitLabでした〜、チクショー!!ゲーム開発の記憶どこいった?
こないだ、UnityのプロジェクトをGitHubにPushし…