Large file in Git with Git LFS
Git was built for versioning source code and uses diffs for tracking changes. This does not perform too well with some large binary file types. Downloading multiple revisions of large files increase the clone and fetch times for all developers.
One solution to combat this is Git Large File Storage (LFS). This extension for Git hooks itself into the normal Git workflow and instead of committing changes of large files into Git they are replaced with a reference. This is done seamlessly for all file types you configure GIT LFS to intercept in your repository/project. The real file is uploaded to a separate file storage system. This way cloning or fetching a repository stays fast as not every version of a large file is downloaded. Only when a specific revision is needed the reference is resolved and the file is downloaded from the file storage system.
All our Gitlab projects support this and it can be enabled in the projects configuration. Instructions on how to install and use Git LFS are listed on the project's homepage.
We are already useing Git LFS in our internal Book for storing embedded videos (.gitattributes).