解决git无法上传大文件(50MB)

解决方法

使用LFS解决GitHub无法上传大于50MB的文件

LFS简介

Git LFS(Large File Storage)是 Git 的一个扩展,用于管理大型文件,如二进制文件、图像、音频和视频文件等。它的主要目的是解决 Git 对大型二进制文件的版本控制和存储问题。通常情况下,将大型二进制文件纳入 Git 版本控制会导致存储和性能方面的问题,因为 Git 不是为处理这些文件而设计的。

详细步骤

1、Windows下载安装LFS。下面是官网https://git-lfs.com/,在这里下载好后安装,会自动检测电脑的git信息并登录。

在git里用下面命令初始化:

git lfs install

2、找到你的本地仓库,比如我的网址:E:\GitHub\sfssa.github.io,在这个文件夹内点击鼠标右键选择"git bash here",输入下面指令:

git lfs track "*.zip"

 这条命令是追踪所有以.zip为结尾的文件,然而当我在追踪时却遇到了问题如下:

这是由于我的配置文件出了问题,输入下面两条命令检查里面的内容有没有重复的:

git config --local --edit

git config --global --edit

 输入上述指令会打开一个文件,查看里面的内容有没有重复的,有就删除,保留一个就行,我的当时就是"url"有两个重复了。

之后再次输入命令:

git lfs track "*.db"

 我们可以看到:

可以用命令:git lfs track查看:

实际上这是修改了我们的.gitattributes文件,.gitattributes 文件是用来配置 Git 存储库中文件的属性和行为的文件。它可以用来指定如何处理存储库中的文件。为了让它生效,我们需要提交:

git add .gitattributes

git commit -m "描述"

git add test.db                (db>50M)

git push

之后就可以在GitHub上看见了。

LFS原理

具体来说,Git LFS将大文件替换为指向远程存储的指针。这些指针存储在Git存储库中,而实际的大文件则存储在Git LFS服务器上。当你执行 git checkout 命令并切换到包含大文件的分支时,Git LFS会根据需要下载这些大文件。这样可以减小Git存储库的大小,提高效率,因为不会在每次 checkout 时都下载所有大文件。

因此,在 checkout 阶段,Git LFS会检查你所需的大文件是否已经存在本地,如果不存在,则会从Git LFS服务器下载。这使得你只需下载和管理实际需要的大文件,而不必下载整个Git存储库的所有大文件。

需要注意的是,Git LFS需要额外的配置和设置,以确保它正确工作。你需要在Git存储库中启用Git LFS,并在Git LFS服务器上存储大文件。在克隆或 checkout 存储库时,Git LFS将根据配置自动执行下载。

checkout 是一个非常重要的操作,它用于在不同的分支之间切换,查看历史版本,创建新的分支等等。)