有一種git拉取文件到一半就報(bào)錯(cuò),叫做文件太大

最近要用到公司的項(xiàng)目文檔,默默就去git上拉取,結(jié)果無(wú)數(shù)次報(bào)錯(cuò),下載到一半就掛掉,永遠(yuǎn)下不完。后來(lái)發(fā)現(xiàn),整個(gè)文檔里零零碎碎加一起有1.8G,瞬間懵住。
在網(wǎng)上也查找了很多資料,大多都是擴(kuò)充緩存區(qū),淺層clone之類(lèi)的。結(jié)果對(duì)這個(gè)1.8G的項(xiàng)目毫無(wú)用處.....
最后,只能放大招,更換為SSH拉取項(xiàng)目,在折騰了一個(gè)世紀(jì)后,項(xiàng)目終于被成功拉下來(lái)了。。。
各種解決方案都放出來(lái),希望也能幫到一樣被坑到的小伙伴吧。

先看看報(bào)錯(cuò)吧,就是這樣的幾行報(bào)錯(cuò):

git.exe pull --progress -v --no-rebase "origin" master

POST git-upload-pack (175 bytes)
remote: Enumerating objects: 3796, done.
remote: Counting objects: 100% (3796/3796), done.
fatal: early EOF
fatal: The remote end hung up unexpectedly
fatal: index-pack failed
error: RPC failed; curl 18 transfer closed with outstanding read data remaining

下面先把前輩的解決方案放出來(lái),能解決的話,就不用換拉取方式了。

  1. 考慮緩存區(qū)溢出,擴(kuò)充緩存區(qū),下面是500M的
git config http.postBuffer 524288000
  1. 考慮網(wǎng)絡(luò)下載速度緩慢
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
  1. 要是依舊clone失敗,則首先淺層clone,然后更新遠(yuǎn)程庫(kù)到本地
git clone --depth=1 http://gitlab.xxx.cn/yyy/zzz.git
git fetch --unshallow

如果以上方法都無(wú)法解決的話,那就只能放大招了。更換為SSH地址拉取項(xiàng)目?。?!

第一件事,打開(kāi)Git Bush客戶(hù)端窗口
  1. 查看是否已經(jīng)有配置SSH公鑰的文件 ls ~/.ssh
    如果沒(méi)有任何打印內(nèi)容的話,那就沒(méi)有配置,繼續(xù)自己生成公鑰。
  2. 生成ssh key文件,執(zhí)行ssh-keygen -t rsa -C "xxx.xxx.com"

-t 指定密鑰類(lèi)型,默認(rèn)是 rsa ,可以省略
-C 設(shè)置注釋文字,比如git的地址。
-f 指定密鑰文件存儲(chǔ)文件名,我們省略了命令執(zhí)行的時(shí)候會(huì)讓你選擇文件名,直接回車(chē)就會(huì)保存在默認(rèn)的位置。

然后會(huì)讓你輸入兩次密碼,這個(gè)密碼你可以隨便輸一個(gè)你記得住的密碼。
當(dāng)提示你:

  Your public key has been saved in /home/you/.ssh/id_rsa.pub.
  The key fingerprint is: # 03:0e:f2:3b:ca:85:d6:17:a9:7d:f0:68:9d:f0:a2:db "郵箱地址"

這個(gè)時(shí)候,你的本地密鑰已經(jīng)生成了。

第二件事,查看SSH公鑰,并在git上配置
  1. 查看SSH公鑰
cat ~/.ssh/id_rsa.pub

此時(shí)會(huì)打印一長(zhǎng)串的公鑰,copy帶走

  1. 進(jìn)入git或者其他代碼托管平臺(tái),自己去設(shè)置里找配置SSH公鑰的地方,把整個(gè)公鑰粘進(jìn)去
    記得不要忽略公鑰上面的ssh-rsa 這個(gè)也是要隨下面的公鑰內(nèi)容粘貼進(jìn)去,不然會(huì)報(bào)錯(cuò)的。
    設(shè)置完公鑰,就可以去拉取項(xiàng)目啦
  2. 測(cè)試
ssh -T git@xxx.com

-T后面的內(nèi)容不是拼接的,是直接copy過(guò)來(lái)的ssh地址,地址的前面會(huì)是git@

好了,下面就是漫長(zhǎng)的等待過(guò)程,不過(guò)起碼結(jié)果是美好的,項(xiàng)目完美拉取成功。

拉取完項(xiàng)目,就看你是否喜歡ssh拉取了,反正我用小烏龜不習(xí)慣,就拉取之后重新切回https,因?yàn)轫?xiàng)目整個(gè)的git內(nèi)容都已經(jīng)拉下來(lái)了,所以https無(wú)壓力路過(guò),完美。
完結(jié)撒花??ヽ(°▽°)ノ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是我在學(xué)習(xí)Git的過(guò)程中所做的讀書(shū)筆記的相關(guān)總結(jié),希望能對(duì)剛剛接觸Git或Github的小伙伴們帶來(lái)一點(diǎn)點(diǎn)幫助,...
    sonack閱讀 2,633評(píng)論 9 56
  • Git教程 一、Git簡(jiǎn)介 1.1. Git的誕生1.2.集中式的vs分布式 二、安裝Git 三、創(chuàng)建版本庫(kù) 四、...
    曹淵說(shuō)創(chuàng)業(yè)閱讀 1,023評(píng)論 0 2
  • 第一部分:Git的基本操作 初始化操作 $ git config -global user.name #設(shè)置提交...
    莊欲以莘閱讀 2,095評(píng)論 0 4
  • 前提是你已經(jīng)在Linux服務(wù)器上安裝了git SSH(2019.01.31補(bǔ)) SSH是一種協(xié)議標(biāo)準(zhǔn),其目的是實(shí)現(xiàn)...
    shuaiutopia閱讀 4,530評(píng)論 0 2
  • 配置 首先是配置帳號(hào)信息ssh -T git@github.com # 登陸 github 修改項(xiàng)目中的個(gè)人信息 ...
    guanguans閱讀 816評(píng)論 0 3

友情鏈接更多精彩內(nèi)容