方案一:撤销上一次 commit,会退到上一次 commit 前的状态,然后移除超出限制的文件,重新上传。 git reset HEAD^ # 撤销上一次 commit 【注意事项】 若不小心错误回退到上次版本,需要撤销 reset 操作,则可以使用以下代码查看 git HEAD 变化的历史记录。 git reflog 然后使用 git reset 回退到的历史记录: git reset XXX # XXX 为想要会退到的历史记录的 HEAD 当然,这种方法也能解决上传文件超出远程仓库的限制而导致的上传失败问题。
方案二:删除大文件的提交记录。
d0781e7d125599010f4885fa95802a1d7018cd44
为例)查询该大文件的路径: git rev-list --objects --all | grep d0781e7d125599010f4885fa95802a1d7018cd44 得到该大文件路径为 data/data.mp4
。
2. 然后将该文件从历史记录中删除:
git log --pretty=oneline --branches -- data/data.mp4
git filter-branch --index-filter 'git rm --cached --ignore-unmatch data/data.mp4' -- --all
git config --system core.longpaths true
git config --global core.longpaths true
对于由于文件名中存在非法字符,需要修改远程仓库的文件名后在重新 pull 一下。
【注】windows 下的文件名要求:文件名、文件夹名不能包括的符号 \、/、:、*、?、"、<、>、|
。
fetch-pack: unexpected disconnect while reading sideband packet
git clone
Gitee 上的仓库报错,git 版本及报错信息如下:(base) ➜ ~ git --version
git version 2.33.0
(base) ➜ ~ ssh -T git@gitee.com
Hi BlueHeart0621! You've successfully authenticated, but GITEE.COM does not provide shell access.
(base) ➜ ~ git clone git@gitee.com:blueheart0621/OS.git
Cloning into 'OS'...
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
git clone
的 ssh 连接时有问题,Gitee 的技术人员正在努力排查中(相信不久就会解决)。git config --global protocol.version 1
fatal: unable to access 'xxx': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
比如最近 2021 年 9 月 30 日,Let’s Encrypt 组织使用的 IdentTrust DST Root CA X3 根证书过期,因此很多使用了 Let’s Encrypt 签发的证书但没有及时更新证书的网站都受到了影响。
git clone
时不启用证书验证:GIT_SSL_NO_VERIFY="true" git clone xxx