Skip to main content

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

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

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

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

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

GitHub AE は 100 MB を超えるプッシュをブロックします。

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

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

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

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

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

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

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

  1. [ターミナル][ターミナル][Git Bash] を開きます。 1. ワーキングディレクトリをローカルのリポジトリに変更します。
  2. ファイルを削除するには、「git rm --cached」と入力します。
    $ git rm --cached giant_file
    # Stage our giant file for removal, but leave it on disk
  3. --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
  4. コミットを your enterprise にプッシュします。
    $ git push
    # Push our rewritten, smaller commit

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

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

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

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