A Git repository contains every version of every file. But for some file types, this is not practical. Multiple revisions of large files increase the clone and fetch times for other users of a repository.
Conditions for large files→
GitHub limits the size of files allowed in repositories, and will block a push to a repository if the files are larger than the maximum file limit.
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.
Distributing large binaries→
Some projects require distributing large files, such as binaries or installers, in addition to distributing source code.
What is my disk quota?→
GitHub tries to provide abundant storage for all Git repositories, although there are hard limits for file and repository sizes.