1、报错时截图如下(我以下所有命令都是在Git Bash中执行的):
这是先前git push报的提示,明显说LFS(即large file system,此处大文件应该就是指过超过100M的单一文件)仅仅针对企业版gitee用户才可使用。
2、根据它的提示及在网上查询一番,证实我要push的内容中有一个超过100M的文件,所以导致了上述push失败。
解决办法如下:
3、找到这个LFS
#3f7d692758a346ddc7c288e8efad9295eb9ae10c 就是第一张图中那个蓝色字部分,应该是那个LFS对应的hash码吧
git rev-list --objects --all | grep 3f7d692758a346ddc7c288e8efad9295eb9ae10c
4、在本地删除这个文件(因为这个文件是所有的代码的压缩包文件,对我而言是可有可无的,可以删除)
rm ./fabric-samples.tar.gz
5、对之前的commit进行rewrite,rm该文件
因为在之前的commit中该文件已经提交到git中,会进行对之前的commit进行rewrite,rm该文件。执行如下命令:
git filter-branch -f --prune-empty --index-filter "git rm -rf --cached --ignore-unmatch ./fabric-samples.tar.gz" --tag-name-filter cat -- --all
./fabric-samples.tar.gz 是上述LFS相对gitee库根目录的相对路径。我看网上说:(1)一定要在库的根目录下执行这个命令,否则会报“fatal: this operation must be run in a work tree”,我没有去探讨与测试这个错误。(2)此命令中的git rm -rf --cached --ignore-unmatch ./fabric-samples.tar.gz 一定要被两个双引号包围,否则会报错“fatal: bad revision ‘rm’”,我也没有去探讨与测试这个错误。
6、清楚本地缓存刷新。
git gc --prune=now
7、重新commit
git commit -m "这是commit的日志信息"
8、将修改内容提交远程库
#此处我看网上说push就可以了,我不加-f时一直报错(报错如最后一张图片)。直到加-f强制push才成功
git push -f
push时不加-f时一直报错