Git push大文件失敗解決
問題描述
在git push的時候,報錯:
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
導致一直commit,未push的好多版本都無法推到github上,頭疼~
問題解決
自然先找度娘,查閱了好多相關問題的解決辦法,發現都很雷同,就是下面這一種
1.取消文件大小限制
在github上推送時候,貌似單個文件不能超過100M。再加上天朝的牆,給個眼神自己體會。既然是提交大文件導致http postbuffer溢出,將postbuffer改大就可以了。
git config http.postBuffer 524288000
最后面的那個數字不一,但是這個數字相對來說出現頻率比較高。
修改之后,美滋滋,再次push依舊報錯,同樣的錯。呵呵~~~心里無數的草泥馬在奔騰
再次踏上需求答案之旅。
2.撤銷commit
在網上看到了一個大神的帖子,雖然沒有詳細的步驟,但是一語驚醒夢中人。那就是在commit的時候,之前的版本里面已經包含過這些大文件了,雖然后來在新版本里面刪除了大文件,但是之前commit的記錄還是存在。所以在統一push的時候就呵呵了。搞清楚這一點,那么我們把大文件的幾次提交給它取消不就好了嗎。心里又盛開了小花,說干就干。
1.先查看一下最近提交的commit的版本號。
git log
2.依次撤銷commit(包含過要刪除的大文件的commit必須都給撤銷了,要不然會報錯)
git reset xxxxxxxxxxxxx
3.你一定在想你的代碼還在不在?不要擔心,上面的撤銷只是對commit命令的撤銷,不會對你修改過的代碼撤銷的,他們還是在的。
4.刪除掉本地的大文件(或者備份到其他地方)
5.重新進行提交
git add .
git commit -m '提交版本的注釋'
git push
非常完美的解決了此問題。