Skip to main content

現在、GitHub AE は限定的リリースです。

GitHub での大きいファイルについて

GitHub AE には、通常の Git リポジトリで追跡できるファイルのサイズに制限があります。 制限を超えるファイルを追跡または削除する方法について説明します。

Platform navigation

GitHub AE でのサイズ制限について

GitHub AE では、すべての Git リポジトリへの十分なストレージの提供に努めていますが、ファイルとリポジトリの。

ファイル サイズ制限

GitHub AE には、リポジトリで許可されるファイルのサイズに制限があります。 50 MiBより大きいファイルを追加または更新しようとすると、Gitから警告が表示されます。 変更は引き続きリポジトリに正常にプッシュされますが、パフォーマンスへの影響を最小限に抑えるためにコミットを削除することを検討してもよいでしょう。 詳しくは、「ファイルをリポジトリの履歴から削除する」をご覧ください。

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

GitHub AE は 100 MiB を超えるファイルをブロックします。

この制限を超えるファイルを追跡するには、Git Large File Storage (Git LFS) を使う必要があります。 詳しくは、「Git Large File Storageについて」を参照してください。

リポジトリ内で大きなファイルを配布する必要がある場合は、ファイルを追跡するのではなく、ご自分のエンタープライズ でリリースを作成できます。 詳しくは、「大きなバイナリを配布する」をご覧ください。

Git は、大きい SQL ファイルを処理するようには設計されていません。 大きいデータベースを他の開発者と共有するには、ファイル共有サービスを使うことをお勧めします。

リポジトリ サイズの制限

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

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

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

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

警告: これらの手順を実行すると、ファイルはコンピューターのリポジトリと ご自分のエンタープライズ から完全に削除されます。 ファイルが重要なものである場合は、ローカルバックアップコピーをリポジトリ外にあるディレクトリに作成してください。

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

直近のコミットで追加されたファイルを ご自分のエンタープライズ にプッシュしていない場合は、ファイルを削除してコミットを修正することができます。

  1. [ターミナル][ターミナル][Git Bash] を開きます。

  2. ワーキングディレクトリをローカルのリポジトリに変更します。

  3. ファイルを削除するには、「git rm --cached」と入力します。

    $ git rm --cached GIANT_FILE
    # Stage our giant file for removal, but leave it on disk
    
  4. --amend -CHEAD を使って、この変更をコミットします。

    $ git commit --amend -CHEAD
    # Amend the previous commit with your change
    # Simply making a new commit won't work, as you need
    # to remove the file from the unpushed history as well
    
  5. コミットを ご自分のエンタープライズ にプッシュします。

    $ git push
    # Push our rewritten, smaller commit
    

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

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

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

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