昨天折腾了好久终于弄好了一个 GitHubGitHub 库——f-zyj/ACM,用来放过去两年搞 ACMACM 我所写的代码以及整理的资源。
今天,上传了一些 PDFPDF 文件,结果没想到因为过大而报错:
remote: warning: File xxx/…/xxx.xxx is 51.00 MB; this is larger than GitHub’s recommended maximum file size of 50 MB
报错提示十分清楚的告诉我们文件 xxx/…/xxx.xxxxxx/…/xxx.xxx 是多么大的文件,而 GitHubGitHub 的最大限制是文件不能超过 50 MB50 MB,所以想当然的,直接删除了大文件,然后 addadd 并且 commitcommit,可是问题依然存在,报错信息依然没有变。
想了想可能是因为已经 add 并且 commit 过的这样删除是不行,于是用 git rm -r --cached file_pathgit rm -r --cached file_path 了一下,重新 add 然后 commit,可是 push 时报错信息依然没有变。
找了好久,从一个大佬的博客里找到如下一句命令可以解决问题:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch *.sql'
这里需要将 * .sql 替换为报错信息中所给的 xxx/…/xxx.xxxxxx/…/xxx.xxx 就行了。
注意:将 .sql替换为您的文件名或文件类型。 要非常小心,因为这会经历每次提交并将此文件类型翻录出来。*
最后,千万要注意别上传太大的文件,50 M50 M 是一个红线。
然后git push的时候还可能出现这样的错误:non-fast-forward。
问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:
1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f
2,先把git的东西fetch到你本地然后merge后再push
$ git fetch
$ git merge
这2句命令等价于
$ git pull
可是,这时候又出现了如下的问题:

上面出现的 [branch “master”]是需要明确(.git/config)如下的内容
[branch “master”]
remote = origin
merge = refs/heads/master
这等于告诉git2件事:
1,当你处于master branch, 默认的remote就是origin。
2,当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变
如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
之后再重新git pull下。最后git push你的代码吧。it works now~
参考链接:https://blog.csdn.net/sinat_25306771/article/details/55257901
本文介绍了在GitHub上传文件时遇到文件大小超出限制和non-fast-forward冲突的问题,提供了解决方案,包括使用`git rm -r --cached`命令移除大文件,并解释了non-fast-forward冲突的原因及解决办法,包括强制推送和合并。

5107

被折叠的 条评论
为什么被折叠?



