#503 解决big commit推送失败的问题   git     2 years ago (owner) Document
参考:这后面几种方法的关键是拆分大的commit到tmp分支后,还需要将这个大的commit merge到tmp分支,然后将tmp分支逐个commit进行push,一直到大的那个commit也被push成功,此时再回到master分支push那个大的commit就可以成功了。一个可行的操作过程如下:
  • 新建tmp分支并在本地切换到该分支
  • 打开master分支的log列表
  • 浏览master分支的big commit,找到几个磁盘占用很大的文件
    • 将一个或几个大文件导出到tmp本地
    • git add Content 或其他目录的修改
    • git commit -m "msg1"
  • 重复上一步,直到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