今天上传代码到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