gitを初めて触って数時間の初心者が自分用に書いているため、知識不足もあることご了承ください。
また、ブランチ名やコメント内容は各々の設定に合わせてください。
作業してるローカルPCのOSはmacOSです。
githubにはREADMEだけがある状態です。
まずは結論 UnityデータをGithubへpush時gitignoreが効かずLibrary配下がfilesizeエラーな時の対処法
今回実行するコマンドを上から順番にgitに全部まとめました。
一旦今の、全ての変更をコミットする。
git add .
git commit -m "Temporary commit to save current work"
ブランチをリセットして新しいブランチへ。
git checkout --orphan latest_branch
ファイルを全部ステージング
git add -A
git commit -m "Clean slate"
ブランチを消して作り直す
git branch -D main
git branch -m main
強制プッシュ
git push -f origin main
私は色々混乱しまくった中で藁にもすがる思いでLFSを導入していたのでここで改めて設定しました(LFSやってない人は大丈夫。やりたい場合は、Homebrewの入れ方とLFSの入れ方を調べてみてください。ターミナルでできます。)
git lfs install
git lfs track ".dll"
git lfs track ".so"
git lfs track "*.dylib"
git add .gitattributes
git commit -m "Add Git LFS tracking"
git push origin main
.gitignoreファイルをステージングして設定
git add .gitignore
git commit -m "Update .gitignore"
git push origin main
Libraryのキャッシュをこれでもかと消してプッシュ
git rm -r --cached Library/
git add .
git commit -m "Remove cached files and apply .gitignore"
git push origin main
ここでエラーが出なければ、自分のgithubを見に行ったらうまく行っているはずです。
振り返り。どのような状態で、UnityデータをGithubへpush時gitignoreが効かずLibrary配下がfilesizeエラーになっていたのか?
gitの状態はどうだった?Unity用のフォルダで使えていたのか
ローカルPCのgitは使えるようになっている状態でした。
プロジェクトのカレントディレクトリに移動し、一通りのgitコマンドは使えていました。
- 自分のPCにgitのインストールはできていた
- commitは動いていたので、フォルダ指定もできていた
.gitignoreでcommitの除外はできていたのか
.gitignore自体の設定はうまく行っていたものの、だめでした。
プロジェクトのカレントディレクトリに.ignoreファイルを作り、内容は下記のunity用設定にしていました。(githubへのリンクですがクリックは自己責任で)
それでもpush時に除外されるはずのLibraryフォルダでfile sizeオーバーのエラーが出てしまいパニックハムスター無限ループ状態でした。
なぜ諸々解消できたのか
一番冒頭での手順メモの内容で解消できました。
- キャッシュクリアだけしてプッシュし直してエラーが治らなかった
- 色々調べてブランチという存在を知って、キャッシュだけでなくブランチを弄る方向へシフト
- おそらく、file sizeエラーを起こしてから.gitignoreを追加したので この時点でブランチ作り直しとキャッシュクリアすれば大丈夫だった
次の新しいプロジェクトの時にまた検証です。
コメント