解决big commit推送失败的问题
参考:这后面几种方法的关键是拆分大的commit到tmp分支后,还需要将这个大的commit merge到tmp分支,然后将tmp分支逐个commit进行push,一直到大的那个commit也被push成功,此时再回到master分支push那个大的commit就可以成功了。一个可行的操作过程如下:
- 新建tmp分支并在本地切换到该分支
- 打开master分支的log列表
- 浏览master分支的big commit,找到几个磁盘占用很大的文件
- 重复上一步,直到big commit被分解成git server可以接收的多个small commits
- 关键一步:merge master_big_commit to tmp
- 将tmp分支的small commits逐个推送,一直到merged commit也push成功
- git push origin commit_id:refs/heads/tmp
- 推送master分支的big commit
- git push origin big_commit_id:refs/heads/master
- 后面正常push,如再遇big commits,重复以上操作即可
- 将master推送完成后,对tmp保留或删除都可以。建议保留作为解决推送big commit问题的专用分支
git push origin 7位hashhex值:refs/heads/master