GitHub doesn't have any set disk quotas. We try to provide abundant storage for all Git repositories, within reason. Keeping repositories small ensures that our servers are fast and downloads are quick for our users.

Rule of thumb: 1GB per repository, 100MB per file

For best performance, we recommend repositories be kept under 1GB each. This limit is easy to stay within if large files (typically, binaries) are kept out of the repository. If your repository exceeds 1GB, you might receive a polite email from support requesting that you reduce the size of the repository to bring it back down under 1GB.

In addition, we place a strict limit of files exceeding 100 MB in size. For more information on why this is, see "Working with large files."

Backups

Though it sounds like Git would make an amazing backup tool, Git really doesn't work out well for backups over the long term. Many solutions that are specifically designed for performing backups are even less expensive than GitHub's Micro plan.

Some services worth checking out include Arq, Backblaze, Carbonite, Mozy and CrashPlan.

Database dumps

Large SQL files do not play well with version control systems such as Git. If you are looking to provide your developers with the most recent production dataset, we recommend using Dropbox for sharing files like these among your developers.

If you are looking to backup your production servers, see the Backups section above.

External dependencies

Another thing that causes Git repositories to become large and bloated are external dependencies. It's best to leave these files out of the repository and use a package manager instead. Most popular languages come with package managers that can do this for you. Bundler, Node's Package Manager and Maven are shining examples. They each support using a git repository directly as well, so you don't need pre-packaged sources.

Packaged release versions

Unfortunately, git isn't very good at distributing compiled code and pre-packaged releases. Check out this guide for alternative distribution options.

Large media files

Binary media files don't get along very well with Git. For these files it's usually best to use a service specifically designed for what you're using.

For large media files like video and music you should host the files yourself or using a service like Vimeo or Youtube.

For design files like PSDs and 3D models, a service like Dropbox usually works quite nicely. This is what GitHub's designers use to stay in sync; Only final image assets are committed into our repositories.

Changing history of an existing repository

If you already have a repository that's quite large, don't fret! You can remove large files from the repository's history to reduce its size. Follow the instructions in this guide to remove the files from the history. After you've done this, make a fresh clone of the repository to test. If the new repository is smaller in disk use than the original repository, you've succeeded.