git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决

新建github仓库后上传文件时发生了如图报错

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第1张图片

 

 报错显示,探测到大文件,第四句指出大文件名以及占存,显示项目不能超过100M

所以需要先移除该文件。

注意,直接删除重新提交,是不行的,因为之前这次报错前两步,git add命令已经将大文件提交存储到本地仓库缓存,直接删除文件,本地缓存文件并没有删除,所以需要执行一下git语句:

$ git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch crawler/zk-crawler.rar' --prune-empty --tag-name-filter cat -- --all  

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第2张图片

 注意:crawler/zk-crawler.rar 即为报错提示的文件名,直接复制即可。

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第3张图片

然后,执行:

$ git commit --amend -CHEAD

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第4张图片

 然后,再次提交,执行:

$ git push origin master --force 

中途可能出现以下报错: 原因大部分是因为网络原因造成连接中断,多试几次即可。

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第5张图片

最终成功!!!

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第6张图片

 

 此外还需要删除本地缓存对象,避免出错;依次执行:

$ rm -rf .git/refs/original/

$ git reflog expire --expire=now --all

$ git gc --prune=now

git提交发生 ! [remote rejected] master -> master (pre-receive hook declined)的解决_第7张图片

 

 最后,查看远程github仓库或者提交历史记录,确认OK。

你可能感兴趣的:(git,git,github)