4
3

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ハンズオン 第6回 ~巨大ファイル編~

Last updated at Posted at 2023-05-14

GitHubハンズオン 第6回 ~巨大ファイル編~

本記事は、GitHubハンズオンの第6回の資料です!
過去の記事を読んでいることを前提としていますので、ご注意ください。

GitHubハンズオンシリーズ

LFSにファイルを登録する

LFSとは

100MBを超えるファイルを、サーバーへプッシュしようとするとエラーになります。

そのエラーをでないようにする仕組みがLFSです。

LFSは Large File System の略で、巨大ファイル用システムという意味です。

新しいリポジトリを作る

ハンズオンを円滑に進めるため、GitHubで新しいリポジトリを作ります。

image39.png

  • Owner : ご自身の個人アカウント
  • Repository name : LfsPractice
  • Private を選択
    • Public を選ばないようにしてください。

としてください。

これをクローンして、Forkでローカルリポジトリを開いてください。

コミットが1つもないと、この後の作業がやりづらいので、 README.md 等を作成してコミットしてください。

巨大ファイルを設置する

Sample101MB.bin をダウンロードしてください。

ちょうど101MBのファイルです。中身は意味のないデータが詰まっています。

(segurが適当に生成したファイルなので、ご自由にお使いください!)

これを、作業ディレクトリに設置してください。

これをコミットして、プッシュしようとすると、以下のようなエラーがでます。

image3.png

remote: error: File Sample101MB.bin is 101.00 MB;
this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected.
You may want to try Git Large File Storage - https://git-lfs.github.com.

要約すると、以下のような感じです。

100MBを超えている巨大ファイルを検知しました。
LFSを利用してください。

巨大ファイルをコミットした1つ前の状態まで、 Mixed Reset してください。
Mixed Reset が何かわからない方は、 第4回 をお読みください。)

LFSを有効にする

Repository > Git LFS > Initialize Git LFS を実行してください。

image37.png

この作業はリポジトリ毎に必要となります!

Initialize Git LFS が見つからない場合は、すでにLFSが有効になっています!

巨大ファイルを設置する

Sample101MB.bin右クリック > LFS > Track ‘Sample101MB.bin’ をクリックします。

image9.png

すると、 .gitattributes というファイルが生成されます。

image19.png

.gitattributes というのは、LFSの設定ファイルです。

中身を見ると、 Sample101MB.bin が登録されていることがわかります。

image21.png

この .gitattributes のみをまずコミットしてください。

その次に、 Sample101MB.bin をコミットしてください。

Sample101MB.bin.gitattributes よりも先にコミットしないようにご注意ください。

Sample101MB.bin.gitattributes を同時にコミットするのは問題ありません。

プッシュする

再びプッシュをしてみます。

今度は、問題なくプッシュできます!

LFSに登録されているファイルを確認する

リポジトリに登録されているLFSファイルを確認する

Forkの右上から Open in > View on GitHub で、リモートリポジトリのページを開きます。

image17.png

Sample101MB.bin をクリックします。

image7.png

Stored with Git LFS と表記されています。

これは、このファイルがLFSに登録されているという証です!

image38.png

LFSを利用しているリポジトリ一覧を確認する

GitHub右上の Settings をクリックします。

image26.png

左サイドバーの Billing and plans > Plans and usage をクリックします。

image33.png

下の方にスクロールして、 Git LFS Data > Storage をクリックします。

image15.png

すると、LFSを利用しているリポジトリの一覧が表示されました!

無料プランの場合、合計1GBまで利用できます。

課金している場合1GB以上利用できますが、費用を抑えるためにも、巨大ファイルを大量に登録しないようにしましょう!

LFSからファイルを削除したい

GitHubのコストを削減するためにも、不要なファイルは削除すべきです。

しかし、LFSファイルの削除は、実はとても大変です。

LFSからファイルを削除する

以下の作業が必要になります。

  • コミットの履歴を改ざんし、巨大ファイルのコミットをなかったことにする。
  • リポジトリのLFS機能を無効にする。
  • リポジトリを削除して再作成する。

詳しい手順はこちらを参照してください。

ファイルを Git Large File Storage から削除する - GitHub Docs

かなり複雑で難解な操作になるため、今回のハンズオンでは実施しません。すみません。

リポジトリを削除する

今回のハンズオンでは、リポジトリを削除することで、LFSも削除します。

LfsPractice リポジトリを削除しましょう!

GitHubのリポジトリのページの右上にある Settings をクリックします。

image4.png

一番下までスクロールし、 Danger Zone > Delete this repository をクリックします。

image34.png

以下のようなダイアログが表示されます。

image10.png

表示にしたがって進めると、以下のような画面になります。

リポジトリの名前をタイプして Delete this repository をクリックします。

image8.png

GitHubのパスワードの入力を求められるので、入力します。

リポジトリ一覧ページに遷移したら、削除成功です!

改めて、 Billing を確認すると、 Git LFS Data > Storage から LfsPractice が消えているはずです!

さいごに

本記事作成にあたり、以下の記事を参考にさせていただきました。ありがとうございました!

これで、GitHubハンズオンは終了です!

ここまですべて実践いただいた方!
もうGitHubもForkも怖くありませんよね!

みなさまのお役に立てたなら幸いです!

これも何かのご縁ですので、 Twitter などフォローしていただけるととても嬉しいです!
(普段は、VR・ARに関する発信が多めですが、それでも構わなければ!)

以上、おつかれさまでした!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?