1. ホーム
  2. ギット

[解決済み】削除済みの大きなファイルがあるため、GitHubにプッシュできない。

2022-03-24 11:02:31

質問

現在、私は

  1. 空のGitHubレポ
  2. SSHサーバーのレポ(メイン)
  3. ローカルレポ

SSH サーバーのレポが最新のレポ (本番サイト) だったので、そこからローカルに Git clone したのです。それから git push をGitHubに転送しました。

すべて順調だったのですが、filename.gz が GitHub では大きすぎるということで、何かメッセージが出ました。このファイルは必要なかったので、いくつかの Git コマンドを実行して Git キャッシュから削除し、SSH サーバーにプッシュしなおしました。

ローカルには大きなファイルは見当たらないが、SSHサーバーには git diff そして、ローカルリポジトリにファイルがないにもかかわらず、GitHub にプッシュしようとするとエラーが発生します。

remote: エラーです。ファイル fpss.tar.gz は 135.17 MB で、GitHub のファイルサイズ制限である 100 MB を超えています。

問題を解決するために、以下の手順を実行しました。 GitHubのヘルプに記載されている ということで、これで十分では?

ローカルでもなく、git status/diff/pushにも記載されていないのに、どうしてファイルがエーテルに残っているのでしょうか?

解決方法は?

を使用することができます。

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <file/dir>' HEAD

これで、そのファイルの履歴がすべて削除されます。問題は、そのファイルが履歴の中に存在することです。

このコマンドはコミットのハッシュを変更するもので、特に共有リポジトリでは本当に問題になります。結果を理解せずに実行するべきではありません。