18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHubに100MBを超えたファイルをPushした時のエラー対策メモ

Last updated at Posted at 2023-10-15

GitHubでUnityを使ってるとGH001: Large files detected. You may want to try Git Large File Storageのエラーに出くわすことがあり、その度に「どうするんだっけ」となるのでメモがてらまとめておきます。

解決するまでの流れ

  1. 「GH001: Large files detected. You may want to try Git Large File Storage」のエラーにぶつかる。
  2. git reset --soft HEAD^git log -> git reset --soft コミット番号を使って100MBを超えたファイルをcommitする前の状態まで戻る。
  3. git reset HEAD 100MBを超えたファイルのパスで100MBを超えたファイルのaddを取り消す。1
  4. .gitignoreに100MBを超えたファイルのパスを書き込んで、今後追跡されないようにする。
  5. git add .
  6. git commit -m "コミットメッセージ。"
  7. git push

中身

こちらのサイトを参考にしながら、流れを見ていきます。

エラーにぶつかる前

エラーにぶつかる前のワーキングツリー、インデックス、HEADは次のようになっています。
GitLFSエラー.png

100MBを超えたファイルの追加

作業によって、ワーキングツリーに100MBを超えたファイルが含まれてしまいます。
GitLFSエラー (1).png

git add & git commit

addとcommitをすると次のようになります。
GitLFSエラー (3).png

エラー発生

この状態でpushをすると、100MBを超えたファイルを含んだ状態でpushをすることになるので、エラーが出ます。
GitLFSエラー (4).png

HEADを戻す

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

addを取り消す

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

.gitignoreに追記

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

git add

.gitignoreに100MBを超えるファイルを追加してからaddするので、100MBを超えるファイルを含んでいない状態になります。
GitLFSエラー (8).png

git commit & git push

この状態であれば、commitしてpushしてもエラーは起きません。
GitLFSエラー (9).png

参考資料

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

18
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?