You are pushing a critical hotfix to production. You type git push, and suddenly: remote: error: GH001: Large files detected.

A 150MB video file was accidentally committed three weeks ago. Now, your push pipeline is blocked.

Why does this happen?

Git (local) and GitHub (cloud) play by different rules. Git has no size limits. It happily stored your 150MB video. But GitHub costs money to run, so they enforce a 100MB limit using a pre-receive hook—a server-side script that rejects heavy pushes.

The Bad Fix: git reset

Your first instinct is to git reset to match GitHub. Don't do it. This squashes your local history, destroying your beautiful, atomic commit timeline.

The Pro-Max Fix: git-filter-repo

Instead of destroying history, you need surgical extraction. By using the Python-based git-filter-repo, you can stream your repository directly into RAM, delete the video from the timeline, and recalculate the Merkle Tree hashes in seconds. Your code is safe, your commits remain atomic, and the massive file is erased from existence.