ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

About large files on GitHub

GitHub limits the size of files you can track in regular Git repositories. Learn how to track or remove files that are beyond the limit.

About size limits on GitHub

GitHub は、すべての Git リポジトリに対して十分なストレージを提供するよう努めていますが、ファイルとリポジトリのサイズにはハードリミットがあります。 ユーザのパフォーマンスと信頼性を確保するため、リポジトリ全体の健全性のシグナルを積極的に監視しています。 リポジトリの健全性は、サイズ、コミット頻度、コンテンツ、構造など、さまざまな相互作用要因の機能よるものです。

File size limits

GitHub limits the size of files allowed in repositories. 50 MBより大きいファイルを追加または更新しようとすると、Gitから警告が表示されます。 変更は引き続きリポジトリに正常にプッシュされますが、パフォーマンスへの影響を最小限に抑えるためにコミットを削除することを検討してもよいでしょう。 詳細は「リポジトリの履歴からファイルを削除する」を参照してください。

メモ: ブラウザ経由でリポジトリにファイルを追加する場合、そのファイルは 25 MB 以下でなければなりません。 詳細は「ファイルをリポジトリに追加する」を参照してください。

GitHubは100 MB以上のプッシュをブロックします。

To track files beyond this limit, you must use Git Large File Storage (Git LFS). 詳しい情報については、「Git Large File Storage について」を参照してください。

If you need to distribute large files within your repository, you can create releases on GitHub.com instead of tracking the files. 詳しい情報については、「大きなバイナリを配布する」を参照してください。

Git is not designed to handle large SQL files. 大規模なデータベースを他の開発者と共有するには、Dropbox の使用をお勧めします。

Repository size limits

リポジトリは小さく保ち、理想としては 1GB 未満、および 5GB 未満にすることを強くお勧めします。 リポジトリが小さいほど、クローン作成が速く、操作やメンテナンスが簡単になります。 リポジトリがインフラストラクチャに過度に影響する場合は、GitHub Support から是正措置を求めるメールが送られてくる場合があります。 特に多くのコラボレータが参加している大規模なプロジェクトでは、柔軟に対応するよう努めており、可能な限り解決策を見つけるために協力します。 リポジトリのサイズと全体的な健全性を効果的に管理することで、リポジトリがインフラストラクチャに影響を与えることを防ぎます。 github/git-sizer リポジトリには、リポジトリ分析のためのアドバイスとツールがあります。

外部依存関係によって、Git リポジトリが非常に大きくなる場合があります。 リポジトリが外部依存関係で埋まってしまうことを避けるために、パッケージマネージャーの使用をお勧めします。 一般的な言語で人気のあるパッケージマネージャーには、BundlerNode のパッケージマネージャーMaven などがあります。 これらのパッケージマネージャーは Git リポジトリの直接使用をサポートしているため、事前にパッケージ化されたソースは必要ありません。

Git はバックアップツールとして機能するようには設計されていません。 ただし、ArqCarboniteCrashPlan など、バックアップを実行するために特別に設計された多くのソリューションがあります。

ファイルをリポジトリの履歴から削除する

警告: この手順では、ファイルをコンピュータのリポジトリと GitHub.com から恒久的に削除します。 ファイルが重要なものである場合は、ローカルバックアップコピーをリポジトリ外にあるディレクトリに作成してください。

プッシュされていない直近のコミットで追加されたファイルを削除する

ファイルが直近のコミットで追加され、GitHub.com にプッシュしていない場合は、ファイルを削除してコミットを修正することができます。

  1. ターミナルターミナルGit Bashを開いてください。
  2. ワーキングディレクトリをローカルのリポジトリに変更します。
  3. ファイルを削除するため、git rm --cached を入力します。
    $ git rm --cached サイズの大きいファイル
    # サイズの大きいファイルを削除するためにステージするが、ディスクには残す
  4. --amend -CHEAD を使用して、この変更をコミットします。
    $ git commit --amend -CHEAD
    # 以前のコミットを変更して修正する
    # プッシュされていない履歴からもファイルを削除する必要があるため
    # 単に新しいコミットを行うだけでは機能しない
  5. コミットを GitHub.com にプッシュします。
    $ git push
    # 書き換えられサイズが小さくなったコミットをプッシュする

以前のコミットで追加されたファイルを削除する

以前のコミットでファイルを追加した場合は、リポジトリの履歴から削除する必要があります。 リポジトリの履歴からファイルを削除するには、BFG Repo-Cleaner または git filter-branch コマンドを使用できます。 詳細は「機密データをリポジトリから削除する」を参照してください。

大きなバイナリを配布する

リポジトリ内で大きなファイルを配布する必要がある場合は、GitHub.comでリリースを作成できます。 リリースでは、他の人が使用できるように、ソフトウェア、リリースノート、バイナリファイルへのリンクをパッケージ化できます。 詳細は「リリースについて」を参照してください。

リリース内のバイナリファイルの合計サイズや、それらの配布に使用される帯域は制限されません。 ただし、個々のファイルは2 GB未満でなければなりません。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?