git报错:data stream error (incorrect data check)和 The remote end hung up unexpectedly

      今天上传代码到oschina上的时候,可能是出现了一些操作上的纰漏,导致git push一直不成功。这里记录一下

一、报错信息

$ git push admin master
Counting objects: 2427, done.
Delta compression using up to 2 threads.
error: inflate: data stream error (incorrect data check)
fatal: loose object c39b1ec47665b00d7053c7f043b7b4a8402eb087 (stored in .git/objects/c3/9b1ec47665b00d7053c7f043b7b4a8402eb087) is corrupt
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'xxxx'

二、解决过程

1、搜索The remote end hung up unexpectedly
大家都说出错的原因是因为传输文件太大,需要设置缓存为500M。好吧,我赶紧试试。

git config http.postBuffer 524288000  

      试完之后发现还是不行,我这里本来设置的已经是500M缓存了,也就是说,应该不是传输文件太大的原因。

2、搜索:loose object xxx(stored in .xxx) is corrupt
解释:
      这个报错通常是因为之前git commit出现错误,比如命令不正确(git commit -a “Some messeage”,git commit “Some message”等),导致出现空的commit。再执行git命令时就可能出现上述错误。

这个错误修复很麻烦,最佳方案是删掉.git文件,重新建立本地仓库。好吧,先放着,继续百度。

3、搜索:inflate: data stream error (incorrect data check)

解释:这个错误是属于数据流错误。修复起来也很麻烦。感兴趣的可以参考:
http://blog.jobbole.com/50108/

三、解决方案

经过一番思考,我还是觉得,不如重新初始化代码库比较方便一些。因为我这两天新增的内容比较多,万一找不回来了,真的是欲哭无泪。

1、首先是把本地项目复制一份。千万不能丢

2、然后删除本地代码库。

3、初始化项目

git init

4、和oschina建立连接

git remote add origin 你的远程地址

5、从远程仓库拉取项目代码

git pull

6、把新建的本地仓库,除了.git文件,把其他的文件都删除。然后把刚才咱们复制下来的项目,重新粘贴到新的本地仓库

7、接下来就是同步远程仓库了。这一步我也是抱着试试的态度,没想到成功了、

//常规操作
git add -A
git commit -m'xx'
git pull
git push

8、登录远程代码库,查看项目。发现我们已经成功更新了远程的仓库。这下就不用担心新增的部分会提交不上去了。

四、总结

      总体来说还是很惭愧的。我到现在也没有找到自己错误的原因。不过经过近两小时的百度,我觉得问题出在了数据的身上,似乎是某些字节出现了混乱。。如果有谁知道具体原因,请记得留下评论。多谢了。

好了,此刻凌晨1点,该睡了,晚安。

end

你可能感兴趣的:(git)