Reduce git repository size

I tried looking for a good tutorial on reducing repo size, but found none. How do I reduce my repo size…it’s about 10 MB, but the thing is Heroku only allows 50 MB and I’m no where near finished developing my app.

I added the usual suspects (log, vendor, doc etc) to .gitignore already. Although I only added .gitignore recently.

  • TeamCity building Git / GitHub pull requests
  • What is the difference between git am and git apply?
  • Used GitHub GUI to COMMIT&SYNC and everything disappeared
  • Get list of tasks numbers from git log based on message
  • Can I revert a specific commit such that it leaves what it would delete as unstaged in the file?
  • Git conflict (rename/rename)
  • Any suggestions?

  • How to Abort Git Bisect
  • git: use “commit --cleanup=whitespace” with “rebase --interactive”
  • What does diff.mnemonicprefix do?
  • How to push local Git repo to newly created Google Code project?
  • Remove a directory from all previous commits
  • GitLab: Could not read from remote repository
  • 2 Solutions collect form web for “Reduce git repository size”

    git gc --aggressive is one way to force the prune process to take place (to be sure: git gc --aggressive --prune=now). You have other commands to clean the repo too. Don’t forget though, sometimes git gc alone can increase the size of the repo!

    It can be also used after a filter-branch, to mark some directories to be removed from the history (with a further gain of space); see here. But that means nobody is pulling from your public repo. filter-branch can keep backup refs in .git/refs/original, so that directory can be cleaned too.

    Finally, as mentioned in this comment and this question; cleaning the reflog can help:

    git reflog expire --all --expire=now
    git gc --prune=now --aggressive

    An even more complete, and possibly dangerous, solution is to remove unused objects from a git repository

    Thanks for your replies. Here’s what I did:

    git gc
    git gc --aggressive
    git prune

    That seemed to have did the trick. I started with around 10.5MB and now its little more than 980KBs.

    Git Baby is a git and github fan, let's start git clone.