大容量ファイルをコミットしようとした際の警告と .gitignore を使ったファイル除外方法

2025年3月31日

この資料では、GitHub Desktop 上で 100MB を超えるファイルをコミットしようとした際に表示される警告メッセージと、その後に行う .gitignore 設定によるファイルの除外方法について解説します。


1. 大容量ファイルコミット時の警告

  1. 100MB 超ファイルのコミット時に表示される警告
    • GitHub Desktop では、GitHub の制限により 100MB を超えるファイルが含まれていると下記のようなダイアログが表示され、プッシュに失敗します。
  • ここで「Commit anyway」を選んでも、最終的には GitHub へのプッシュがブロックされます。
  • 推奨する対応は「Cancel」を押してコミットを取りやめることです。

または、このようなメッセージが表示されます


2. .gitignore を使ってファイルを除外する

2.1 コミット前のファイルを除外する手順

  1. 警告が出たらコミットを取り消す
    • 先ほどの警告ダイアログで「Cancel」を選択し、大容量ファイルをコミットしないようにします。
  2. GitHub Desktop の「Changes」タブでファイルを確認
    • 再度、リポジトリの変更ファイル一覧を確認します。
  3. 対象ファイルを .gitignore に追加する
    • 右クリックメニューから「Ignore file (add to .gitignore)」を選択します。
  • 今回は、画像ファイルをフォルダーごとGitの管理対象外とします
  • この操作により、.gitignore ファイルが自動的に更新されます。
  1. .gitignore の内容をコミット
    • .gitignore に追加された変更をコミットします。
    • これで、該当ファイルはリポジトリの追跡対象から外れ、今後はコミットされなくなります。

2.2 既にコミット済みのファイルを除外したい場合

  • 一度コミット(履歴に残っている状態)してしまった大容量ファイルを .gitignore に追加しても、過去のコミットには依然として含まれたままです。
  • その場合、git rm --cached <ファイル名> などでコミット履歴から削除し、再度プッシュする必要があります。
  • さらに過去のコミットから完全に抹消するには、git filter-branchgit filter-repo を用いたリポジトリ履歴の書き換えが必要となり、共同開発中の他メンバーとの同期が複雑になる場合があります。

3. .gitignore で除外したファイルを別途管理する方法

  1. Git LFS (Large File Storage) の利用
    • 大容量ファイルをリポジトリで管理したい場合は、GitHub が提供する Git LFS を導入するのが推奨です。
    • Git LFS で管理すれば 100MB を超えるファイルも扱うことができます(ただし容量上限と課金プランに注意)。
  2. 外部ストレージを利用
    • 画像や動画などの大容量ファイルをリポジトリとは別のクラウドストレージ(例: Dropbox, Google Drive など)で管理するのも一般的です。
    • .gitignore で除外したファイルを、外部ストレージの共有リンクなどでメンバーと共有する方法があります。

4. まとめ

  • GitHub では 100MB を超えるファイル は通常の手順ではプッシュできません。
  • 警告ダイアログが出たら、「Commit anyway」ではなく 「Cancel」 を選択し、該当ファイルを .gitignore に追加してコミットを除外する方法が安全です。
  • 既にコミットしてしまったファイルを削除する場合は、履歴操作が必要となるため注意が必要です。
  • 大容量ファイルを継続的に扱う場合は、Git LFS外部ストレージ を活用しましょう。

以上が、GitHub Desktop 上で 100MB を超えるファイルに対する警告が出た際に .gitignore を用いてファイルを除外する手順です。

it