1
0

Git LFSは無制限のクラウドか?

Last updated at Posted at 2024-04-06

はじめに

gitを用いて開発を行うときに、画像、動画、音声、巨大なバイナリファイル等をgithubに上げたくなる場合があります。

しかし実は、githubに上げられるデータには制限が設けられています

具体的には、

・100MBを超えるfileはpush出来ない
・レポジトリあたり5GBまでのデータしかpush出来ない

という制約があります。

しかし、画像、動画、音声、バイナリファイルで100MBを超えるデータは多く、このようなデータをgithubに上げられないのはとても不便です。

そこで、Git LFSという拡張機能を利用することによってこのような問題を解決することができます。

Git LFSとは

Git LFSとはGit Large File Storage (LFS)のことで、巨大なファイルをGitのポインターファイルに変更する機能です。

つまり、巨大なファイルをGitに上げて、Gitのファイルが保存されている場所のポインターを巨大なファイルと入れ替える機能です。

graphic.gif

Git LFSを使うことによって本来はgitに上げることができないファイルをgitで管理することができるようになります。

git lfsを使用するためには、

PowerShell
git lfs install

をPowerShellに打ち込んでください。

Git LFSでファイルを管理したい場合は、

PowerShell
git lfs track "<管理したいファイル>"

をPowerShellに打ち込んでください。管理したいファイルはワイルドカードで指定することができます。

コマンドを打ち込むと.gitattributesというファイルが追加されます。

このファイルにはGit LFSで管理されるファイルが書かれており、このファイルを削除するとGit LFSでのファイル管理が解除されます。

Git LFSで管理してるファイルの管理をやめたい場合は、

PowerShell
git lfs untrack "<管理をやめたいファイル>"

をPowerShellに打ち込んでください。

Git LFSに制限があるのか

では、Git LFSを使用すれば無料で巨大なファイルを無制限にGitに上げることができるのでしょうか?

残念ながら、Git LFSには制限がつけられています。

まずGit LFSでも5GiBを超えるファイルは保存することが出来ません。5GiBを超えるファイルを保存しようとするとサイレントに拒否されるそうです。

・無料のストレージは1 GiB
・無料帯域は1 GiB/月

これらは、レポジトリ単位でなく、アカウント毎にカウントされます。

順に説明していきます。

ストレージについて

全てのユーザーは無料のストレージを1 GiBを持っています。

これは簡単に言うと、合計1 GiBのファイルをGit LFSにアップロードすることができるということです。

しかし、これには注意が必要で他の人が自分のリポジトリにプッシュしたときもリポジトリの所有者である自分のストレージが消費されます。

また、注意すべきこととして、同じファイルでも変更を加えてもう一度プッシュすると、ファイルのサイズ分もう一度ストレージから消費されます。

帯域について

全てのユーザーは無料の帯域を1 GiBを持っています。

これは簡単に言うと、合計1 GiBのファイルをGit LFSからダウンロードができるということです。

しかし、これには注意が必要で他の人が自分のリポジトリをプルしたときもリポジトリの所有者である自分の帯域が消費されます。

また、注意すべきこととして、所有者がファイルに変更を加えた後、もう一度プルするとファイルのサイズ分もう一度帯域から消費されます。

ストレージと帯域の回復

帯域は毎月無料使用枠が回復します(繰り越しはしません)。しかし、ストレージは課金をしないといつまでも回復しません。

Githubに巨大ファイルを共有する前提で開発するとなるとそれ相応のお金がかかる事になります。

おわりに

Git LFSを使い始めた当初は、いくらでもGitに巨大なファイルを上げることができると思っていましたが、githubも営利企業である限り、そんなことはありませんでした。

世の中そんな甘くないですね...

1
0
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
1
0