4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【超わかる!】100MB以上のファイルをGithubにPushする方法

Last updated at Posted at 2024-04-10

GitHub Desktopで100MB超えてしまった!!

状況

Unityで開発中、アセット追加後、Gitに上げようとしたら
下記のように表示されて上げられなくなってしまった!!!!!

Files too large

The following files are over 100MB. If you commit these files, you will no longer be able to push this repository to GitHub.com.

Assets\Editor\364\Bakery\cudnn64_7.d11

We recommend you avoid committing these files or use Git LFS to store large files on GitHub.

実行環境

開発: Unity 2022.3.22f1
ツール: Github Desktop、Git LFS

結論。Git LFSを使って仮想的に実現させる。

様々な容量の大きいデータでも応用できます。
黒い壁に呪文入力するのが苦手な人にもオススメ!!!!!!(俺)

仕組み 【従来】

Git hub <100MB超えてるから受け取れないよ!!

↑ 100MB File

Client < 送るよ~

アップロード時【Git LFS】

Git hub < 軽いから受け取れる!!(データそのものは持っていないが存在自体は在る)

↑ 存在を証明するバイナリファイルを送る

Git LFS < 預かるよ!!【バイナリファイルに変換】

↑ 100MB File

Client < 送るよ~

データ受け取り時【Git LFS】

Git hub



他Client <普段のデータは受け取れるけど、例のファイルは受け取れない!
Git Hubには存在しているのに、直でRawでダウンロードしても壊れてる!

ご安心ください。

プロジェクトのgit内でコマンドを入力すると...

Git LFS < 【預かっている全ての大きなデータを渡すよ!】



他Client < git lfs pullgit lfs checkout

...といった感じです。

なのでイメージとしては ↓

 【Git hub】    【Git LFS】
   ↑         ↑
普段通り使える   デカいデータだけ受け取り、必要な時だけにデータを落とす。
        ↑
        ↑
        ↑
      【Client】< Upload !

まずインストールする。

Git LFS ↓

Githubで.gitattributesを編集

.gitattributes
データが重いファイル.拡張子 filter=lfs diff=lfs merge=lfs -text

いつも通りPushするだけ!

簡単すぎる。インストールして書くだけ。 俺何年悩んでたんだ。

Git LFSのデータを落とす時

プロジェクトのエクスプローラーで右クリック➡「Git Bash Here」
下記のコマンドをひとつずつ実行。

git lfs pull
git lfs checkout

これだけです。

(Git Bashは処理中、固まるので気長に待ちましょう。入力が出来る状態はコマンドを打ち込む前の色のついたユーザー名が表示されている時です。これが表示されてから次のコマンドを実行しましょう。)

例: 冒頭紹介した状況の場合

The following files are over 100MB. If you commit these files, you will no longer be able to push this repository to GitHub.com.

Assets\Editor\364\Bakery\cudnn64_7.d11 ※1

We recommend you avoid committing these files or use Git LFS to store large files on GitHub.

.gitattributes
Assets/Editor/x64/Bakery/cudnn64_7.dll filter=lfs diff=lfs merge=lfs -text

※1 の部分を.gitattributesに書き込む。

気を付けること

パス入力は\ではなく/です。
ファイルのパス取得では\だったのでここで僕は躓きました...;;
拡張子もちゃんとつけてね!

編集をするファイルは.gitignore(ギット イグノア)じゃないよ!!
.gitattributes(ギット アトリビュート)の方だよ!!

あとがき

SNSとかフォローしてくれたら記事いっぱい書きます。おねがいします;;

Log

2024/0411 投稿
2024/0412 修正

参考様

コマンド: https://qiita.com/MasaKoha/items/96d11730d06695470944
コマンド: https://qiita.com/takish/items/4b397caa5549a39a8194
ファイル設定: https://qiita.com/Sase/items/885f42bb13f8a4cc75d1

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?