---
title: fix-github-push-large-binary
type: note
permalink: dotfiles/plans/fix-github-push-large-binary
tags:
- git
- risk
- tooling
---

# Fix GitHub Push Rejection for Large Binary

**Goal:** Remove the oversized `.local/bin/codebase-memory-mcp` blob from local-only history so `main` can push to GitHub successfully.

## Root cause
- [decision] Commit `969140e` added `.local/bin/codebase-memory-mcp` at ~143.51 MB.
- [decision] Commit `2643a0a` later removed the file, but the blob still exists in local history, so GitHub rejects the push.

## Tasks
- [x] Rewrite the 4 local-only commits by soft-resetting to `origin/main`.
- [x] Recreate a clean commit set without the large binary in history.
- [x] Verify no large-file path remains in reachable history.
- [x] Retry `git push` and confirm success.
## Acceptance criteria
- No reachable commit from `HEAD` contains `.local/bin/codebase-memory-mcp`.
- `git push` to `origin/main` succeeds without GitHub large-file rejection.

## Pre-mortem
- Most likely failure: recommit accidentally stages a regenerated large binary again.
- Fragile assumption: current worktree is clean except for the 4 local-only commits.
- Red flag requiring redesign: if the large blob exists in earlier shared history, a broader history rewrite would be required.
- Easy-to-miss regression: leaving `.local/bin/codebase-memory-mcp` unignored so it gets re-added later.
