Removing files from a repository's history

To remove a large file from your repository, you must completely remove it from your local repository and from GitHub.

Warning: These procedures will permanently remove files from the repository on your computer and GitHub. If the file is important, make a local backup copy in a directory outside of the repository.

Removing a file added in the most recent unpushed commit

If the file was added with your most recent commit, and you have not pushed to GitHub, you can delete the file and amend the commit:

  1. Open TerminalTerminalGit Bash.
  2. Change the current working directory to your local repository.
  3. To remove the file, enter git rm --cached:
    $ git rm --cached giant_file
    # Stage our giant file for removal, but leave it on disk
  4. Commit this change using --amend -CHEAD:
    $ git commit --amend -CHEAD
    # Amend the previous commit with your change
    # Simply making a new commit won't work, as you need
    # to remove the file from the unpushed history as well
  5. Push your commits to GitHub:
    $ git push
    # Push our rewritten, smaller commit

Removing a file that was added in an earlier commit

If you added a file in an earlier commit, you need to remove it from the repository's history. To remove files from the repository's history, you can use the BFG Repo-Cleaner or the git filter-branch command. For more information see "Removing sensitive data from a repository."

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.