Git常见问题

1. remote:error:File:××× exceeds 100.00 MB. \cdots remote:Please remove the file from history and try again.

  • 问题:上传文件超出远程仓库的限制
  • 解决:

方案一:撤销上一次 commit,会退到上一次 commit 前的状态,然后移除超出限制的文件,重新上传。

git reset HEAD^     # 撤销上一次 commit

【注意事项】
若不小心错误回退到上次版本,需要撤销 reset 操作,则可以使用以下代码查看 git HEAD 变化的历史记录。

git reflog

然后使用 git reset 回退到的历史记录:

git reset XXX   # XXX 为想要会退到的历史记录的 HEAD

当然,这种方法也能解决上传文件超出远程仓库的限制而导致的上传失败问题。

方案二:删除大文件的提交记录。

  1. 首先根据报错提示的记录 id(此处以 d0781e7d125599010f4885fa95802a1d7018cd44 为例)查询该大文件的路径:
git rev-list --objects --all | grep d0781e7d125599010f4885fa95802a1d7018cd44

得到该大文件路径为 data/data.mp4

  1. 然后将该文件从历史记录中删除:
git log --pretty=oneline --branches -- data/data.mp4 
  1. 最后重写所有的提交:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch data/data.mp4' -- --all

2. fatal: unable to checkout working tree. warning: Clone succeeded, but checkout failed.

  • 问题:成功 Clone,但是目录下的文件并没有恢复,原因在于目录中存在文件名不符合规范的文件。
  • 解决:对于由于长文件名导致的问题,可以修改 git 配置:
git config --system core.longpaths true
git config --global core.longpaths true

对于由于文件名中存在非法字符,需要修改远程仓库的文件名后在重新 pull 一下。

【注】windows 下的文件名要求:文件名、文件夹名不能包括的符号 \、/、:、*、?、"、<、>、|

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。