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.

Tip: If you regularly push large files to GitHub, consider introducing Git Large File Storage (Git LFS) as part of your workflow. Git LFS works well with the GitHub Flow and can be used with any large file, regardless of its type. For more information, see "Versioning large files."

File and repository size limitations

We recommend repositories be kept under 1GB each. This limit is easy to stay within if large files are kept out of the repository. If your repository exceeds 1GB, you might receive a polite email from GitHub Support requesting that you reduce the size of the repository to bring it back down.

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

Backups

Git is not adequately designed to serve as a backup tool. However, there are many solutions specifically designed for performing backups that are worth checking out, including Arq, 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. They each support using a Git repository directly as well, so you don't need pre-packaged sources.

Packaged release versions

We don't recommend distributing compiled code and pre-packaged releases within your repository. For more information on sharing large files, see "Distributing large binaries."

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. For more information, see "Removing files from a repository's history."