GitHubでUnityを使ってるとGH001: Large files detected. You may want to try Git Large File Storageのエラーに出くわすことがあり、その度に「どうするんだっけ」となるのでメモがてらまとめておきます。
解決するまでの流れ
- 「GH001: Large files detected. You may want to try Git Large File Storage」のエラーにぶつかる。
-
git reset --soft HEAD^やgit log->git reset --soft コミット番号を使って100MBを超えたファイルをcommitする前の状態まで戻る。 -
git reset HEAD 100MBを超えたファイルのパスで100MBを超えたファイルのaddを取り消す。1 - .gitignoreに100MBを超えたファイルのパスを書き込んで、今後追跡されないようにする。
git add .git commit -m "コミットメッセージ。"git push
中身
こちらのサイトを参考にしながら、流れを見ていきます。
エラーにぶつかる前
エラーにぶつかる前のワーキングツリー、インデックス、HEADは次のようになっています。

100MBを超えたファイルの追加
作業によって、ワーキングツリーに100MBを超えたファイルが含まれてしまいます。

git add & git commit
エラー発生
この状態でpushをすると、100MBを超えたファイルを含んだ状態でpushをすることになるので、エラーが出ます。

HEADを戻す
git reset --soft HEAD^やgit log -> git reset --soft コミット番号を使ってHEADを前回のcommit状態まで移動させることで、100MBを超えたファイルが含まれていない状態に戻します。

addを取り消す
git reset HEAD 100MBを超えたファイルのパスを使うことでHEADをHEADの位置(そのまま)に、インデックスをHEADの位置に移動させて100MBを超えたファイルのaddだけ取り消します。

.gitignoreに追記
.gitignoreに100MBを超えたファイルのパスを書き込むことで、今後100MBを超えたファイルの情報が追跡されないようにします。

git add
.gitignoreに100MBを超えるファイルを追加してからaddするので、100MBを超えるファイルを含んでいない状態になります。

git commit & git push
この状態であれば、commitしてpushしてもエラーは起きません。

参考資料
-
git reset HEAD^ 100MBを超えたファイルのパスを使えば2と3のプロセスを簡略化できそうですが、実際はエラーが解消されないので注意です。 ↩
