Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2024-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

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

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

Platform navigation

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

GitHub Enterprise Server では、すべての Git リポジトリへの十分なストレージの提供に努めていますが、ファイルサイズにはハード制限があり、リポジトリには推奨サイズがあります。

ファイル サイズ制限

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

Note

ブラウザーからファイルをリポジトリに追加する場合、ファイルは 25 MiB 以下にする必要があります。 詳しくは、「ファイルをリポジトリに追加する」をご覧ください。

既定では、GitHub Enterprise Server は 100 MiB を超えるファイルをブロックします。 ただし、サイト管理者は、お使いの GitHub Enterprise Server インスタンス に対して異なる制限を構成できます。 詳細については、「Enterprise でリポジトリ管理ポリシーを適用する」を参照してください。

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

リポジトリ内で大きなファイルを配布する必要がある場合は、ファイルを追跡するのではなく、お使いの GitHub Enterprise Server インスタンス でリリースを作成できます。 詳細については、「大きなバイナリを配布する」を参照してください。

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

リポジトリの推奨サイズ

リポジトリは小さく保ち、理想としては 1GB 未満、および 5GB 未満にすることを強くお勧めします。 リポジトリが小さいほど、クローン作成が速く、操作やメンテナンスが簡単になります。

リポジトリのサイズと全体的な正常性を効果的に管理することで、リポジトリがインフラストラクチャに影響を与えないようにすることができます。 github/git-sizer リポジトリには、リポジトリの分析についてのアドバイスとツールがあります。

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

Warning

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

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

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

  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. コミットを お使いの GitHub Enterprise Server インスタンス にプッシュします。

    $ git push
    # Push our rewritten, smaller commit
    

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

以前のコミットでファイルを追加した場合は、リポジトリの履歴から削除する必要があります。 リポジトリの履歴からファイルを削除するには、git filter-repo コマンドをお勧めします。 詳しくは、「リポジトリからの機微なデータの削除」をご覧ください。

または、追加のツールをインストールしたくない場合は、対話型リベースを使って問題のあるコミットを削除することもできます。 手順は次のとおりです。

  • 問題のファイルを追加または変更したコミットを把握する必要があります。
  • コミットは 1 つのブランチのみに属している必要があります。
  • コミットが属する 1 つのブランチでは、コミットが適用された後にマージが行われていない必要があります。

対話型リベースの詳細については、「コマンドラインで Git リベースを使う」を参照してください。 対話型リベースを使って修正するために必要な条件を満たしているかどうかが不明な場合は、git filter-repo を使うことをお勧めします。

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

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